将日期格式更改为YYYYMMDD

时间:2016-01-05 01:40:55

标签: sql-server tsql date

我在SQL Server Mgt Studio脚本中有这个声明。日期输出为Dec 28 2015 12:00AM等。如何将其更改为20151228YYYYMMDD格式)。请帮忙。谢谢。

+'|'+ Cast(dateadd(wk,DATEDIFF(Wk,7,GETDATE()),0) as varchar) AS [FIRSTDAY|],
+'|'+ CAST(DATEADD(wk,DATEDIFF(wk,7,GETDATE()),6)AS varchar) as [LASTTDAY|]

3 个答案:

答案 0 :(得分:3)

Prior to Sql Server 2012:

CONVERT(varchar(8), dateadd(wk,DATEDIFF(Wk,7,GETDATE()),0), 112)

Sql Server 2012 and later:

FORMAT(dateadd(wk,DATEDIFF(Wk,7,GETDATE()),0), 'yyyyMMdd')

但你真的应该问自己,SQL是否是正确的做法。只需返回DateTime值并让客户端代码处理格式化,您通常会获得更好的结果。

答案 1 :(得分:1)

使用convert函数而不是强制转换。使用样式112. https://msdn.microsoft.com/en-us/library/ms187928.aspx

答案 2 :(得分:0)

请试一试。

declare @dt nvarchar(50) = 'Dec 28 2015 12:00AM'

select convert(varchar(4),datepart(yy,@dt))+convert(varchar(2),datepart(mm,@dt))+convert(varchar(2),datepart(dd,@dt))