[英]SQL Server - converting date to D-MMM-YYYY format
How can I get the string from GETDATE()
in D-MMM-YYYY
format, eg 3 May 2016
如何从GETDATE()
以D-MMM-YYYY
格式获取字符串,例如3 May 2016
If I use CONVERT(VARCHAR, GETDATE(), 106)
, I would get a leading zero on day which is not what I want.如果我使用CONVERT(VARCHAR, GETDATE(), 106)
,我会在当天得到一个前导零,这不是我想要的。
If you are on SQL Server 2012 or later, use FORMAT
:如果您使用的是 SQL Server 2012 或更高版本,请使用FORMAT
:
SELECT FORMAT(GETDATE(), 'd MMM yyyy')
Edit: some of the answers below are just flat-out wrong so I'm adding a solution for older versions of SQL Server.编辑:下面的一些答案完全错误,所以我为旧版本的 SQL Server 添加了一个解决方案。 2005 is the earliest that I can get my hands on: 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
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]
Some sample output :一些示例输出:
29 Apr 2016
2 Apr 2016
If you cannot use FORMAT
(Below SQL Server 2012)如果您不能使用FORMAT
(低于 SQL Server 2012)
DECLARE @date DATE = '20160503'
SELECT REPLACE(DATEPART(DAY, @date),' 0','') + ' ' +
CONVERT(CHAR(3), @date, 0) + ' ' +
CAST(DATEPART(YEAR, @date) AS CHAR(4))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.