将 SQL 服务器日期转换为 mm-yyyy
Convert SQL Server Date to mm-yyyy
我正在尝试将我的日期(例如 2012-04-20 05:54:59)格式转换为 mm-yyyy。我遇到了一些解决方案,说您需要转换为 varchar 。有什么方法可以使用 Convert 函数吗?
谢谢:)
可能有更优雅的方法来实现这一点,但下面的方法有效。
Declare @dt datetime = GETDATE()
SELECT LEFT('0' + CAST(MONTH(@dt) as varchar(2)),2) + '-' + CAST(YEAR(@dt) as char(4))
顺便说一下,我的常规日期转换作弊 sheet 是 here,但我没有将 MM-YYYY 视为其中一种格式。
您可以使用 FORMAT
函数,从 SQL Server 2012 开始可用:
DECLARE @myDate DATETIME = '2012-04-20 05:54:59'
SELECT FORMAT(@myDate, 'MM-yyyy')
输出:
04-2012
当您使用 SQL Server 2014 时,您可以使用 FORMAT
,这是最好的,您也可以应用此:
SELECT CONVERT(VARCHAR(2),MONTH(yourDateTimeField)) + '-' +
CONVERT(VARCHAR(4),YEAR(yourDateTimeField)) AS [MM-YYYY]
FROM yourTable
ORDER BY yourDateTimeField
select [MM-YYYY] = right(convert(varchar(10),getdate(),105),7)
我正在尝试将我的日期(例如 2012-04-20 05:54:59)格式转换为 mm-yyyy。我遇到了一些解决方案,说您需要转换为 varchar 。有什么方法可以使用 Convert 函数吗?
谢谢:)
可能有更优雅的方法来实现这一点,但下面的方法有效。
Declare @dt datetime = GETDATE()
SELECT LEFT('0' + CAST(MONTH(@dt) as varchar(2)),2) + '-' + CAST(YEAR(@dt) as char(4))
顺便说一下,我的常规日期转换作弊 sheet 是 here,但我没有将 MM-YYYY 视为其中一种格式。
您可以使用 FORMAT
函数,从 SQL Server 2012 开始可用:
DECLARE @myDate DATETIME = '2012-04-20 05:54:59'
SELECT FORMAT(@myDate, 'MM-yyyy')
输出:
04-2012
当您使用 SQL Server 2014 时,您可以使用 FORMAT
,这是最好的,您也可以应用此:
SELECT CONVERT(VARCHAR(2),MONTH(yourDateTimeField)) + '-' +
CONVERT(VARCHAR(4),YEAR(yourDateTimeField)) AS [MM-YYYY]
FROM yourTable
ORDER BY yourDateTimeField
select [MM-YYYY] = right(convert(varchar(10),getdate(),105),7)