将 SQL Server 日期转换为 mm-yyyy

问题描述 投票:0回答:5

我正在尝试将我的日期(例如 2012-04-20 05:54:59)格式转换为 mm-yyyy。我遇到了一些解决方案,说您需要转换为 varchar 。有什么办法可以使用转换功能吗?

谢谢:)

sql sql-server t-sql sql-server-2014
5个回答
38
投票

您可以使用

FORMAT
函数,从 SQL Server 2012 开始提供:

DECLARE @myDate DATETIME = '2012-04-20 05:54:59'
SELECT FORMAT(@myDate, 'MM-yyyy') 

输出:

04-2012

5
投票

可能有一种更优雅的方法来实现这一点,但下面的方法有效。

Declare @dt datetime = GETDATE() 

SELECT LEFT('0' + CAST(MONTH(@dt) as varchar(2)),2)  + '-' + CAST(YEAR(@dt) as char(4))

顺便说一句,我的正常日期转换备忘单是here,但我没有将 MM-YYYY 视为格式之一。


4
投票
  select [MM-YYYY] = right(convert(varchar(10),getdate(),105),7)

enter image description here


3
投票

当您使用 SQL Server 2014 时,您可以使用

FORMAT
,这是最好的,您也可以应用此:

SELECT CONVERT(VARCHAR(2),MONTH(yourDateTimeField)) + '-' + 
       CONVERT(VARCHAR(4),YEAR(yourDateTimeField)) AS [MM-YYYY]
FROM yourTable
ORDER BY yourDateTimeField

0
投票

我最初使用了已接受的答案,我在聚合查询中需要它。速度很慢。这可能只是一种不同的做法,但我喜欢这个。

select right('00' + cast(month(@YOURDATE) as varchar), 2) + '-' + cast(year(@YOURDATE) as varchar)
© www.soinside.com 2019 - 2024. All rights reserved.