如何以D-MMM-YYYY
格式获取3 May 2016
字符串,例如CONVERT(VARCHAR, GETDATE(), 106)
如果我使用<?xml version="1.0"?>
<aspectj>
<!-- place all aspects here -->
<aspects>
<aspect name="<full qualified name of aspect class>"/>
</aspects>
<weaver options="-verbose -showWeaveInfo">
</weaver>
,我会在当天得到一个领先的零,这不是我想要的。
答案 0 :(得分:5)
如果您使用的是SQL Server 2012或更高版本,请使用FORMAT
:
SELECT FORMAT(GETDATE(), 'd MMM yyyy')
编辑:下面的一些答案都是错误的,所以我正在为旧版本的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
答案 1 :(得分: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]
一些示例输出:
29 Apr 2016
2 Apr 2016
答案 2 :(得分:0)
如果您无法使用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))