Sql server 将日期格式更改为YYYYMMDD

Sql server 将日期格式更改为YYYYMMDD,sql-server,tsql,date,Sql Server,Tsql,Date,我的SQL Server Mgt Studio脚本中有此语句。日期输出为2015年12月28日12:00AM等。如何将其更改为20151228(YYYYMMDD格式)。请帮忙。多谢各位 +'|'+ Cast(dateadd(wk,DATEDIFF(Wk,7,GETDATE()),0) as varchar) AS [FIRSTDAY|], +'|'+ CAST(DATEADD(wk,DATEDIFF(wk,7,GETDATE()),6)AS varchar) as [LASTTDAY|] 使用

我的SQL Server Mgt Studio脚本中有此语句。日期输出为2015年12月28日12:00AM等。如何将其更改为20151228(YYYYMMDD格式)。请帮忙。多谢各位

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

使用convert函数而不是cast。使用样式112

但是,您真的应该问问自己,SQL是否是执行此操作的正确位置。只要返回一个
DateTime
值并让客户端代码处理格式设置,您通常会得到更好的结果。

请尝试此方法

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))

您自己有没有尝试过?您使用的是哪个版本的SQL Server?SQL Server 2012及更新版本有一个可供使用的格式:
格式(SYSDATETIME(),'yyyyMM')
FORMAT(dateadd(wk,DATEDIFF(Wk,7,GETDATE()),0), 'yyyyMMdd')
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))