将SQL Server日期转换为mm-yyyy

Pra*_*els 10 sql t-sql sql-server sql-server-2014

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

谢谢 :)

Gio*_*sos 22

您可以使用FORMAT从SQL Server 2012开始提供的功能:

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

输出:

04-2012
Run Code Online (Sandbox Code Playgroud)


小智 5

可能有更优雅的方式来解决这个问题,但下面的工作原理.

Declare @dt datetime = GETDATE() 

SELECT LEFT('0' + CAST(MONTH(@dt) as varchar(2)),2)  + '-' + CAST(YEAR(@dt) as char(4))
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我的正常日期转换备忘单在这里,但我没有看到MM-YYYY作为其中一种格式.