buf*_*w76 -1 sql t-sql sql-server date-formatting
如何从获取字符串GETDATE()中D-MMM-YYYY的格式,例如,3 May 2016
如果我使用CONVERT(VARCHAR, GETDATE(), 106),我会在一天得到一个领先的零,这不是我想要的.
如果您使用的是SQL Server 2012或更高版本,请使用FORMAT:
SELECT FORMAT(GETDATE(), 'd MMM yyyy')
Run Code Online (Sandbox Code Playgroud)
编辑:下面的一些答案是完全错误的,所以我正在为旧版本的SQL Server添加一个解决方案.2005年是我能够掌握的最早的东西:
SELECT CASE
WHEN CONVERT(varchar(20), GETDATE(), 106) LIKE '0%'
THEN SUBSTRING(CONVERT(varchar(20), GETDATE(), 106), 2, 20)
ELSE CONVERT(varchar(20), GETDATE(), 106)
END
Run Code Online (Sandbox Code Playgroud)
小智 5
SELECT case when left(convert(varchar(20),[DateColumn],106),1) ='0'
then right(convert(varchar(20),[DateColumn],106),len(convert(varchar(20),[DateColumn],106))-1)
else convert(varchar(20),[DateColumn],106)
end
FROM [DB].[dbo].[Table]
Run Code Online (Sandbox Code Playgroud)
一些示例输出:
29 Apr 2016
2 Apr 2016
Run Code Online (Sandbox Code Playgroud)