我有一个类似
的日期格式'2003-11-27 00:00:00.000'
如何使用SQL SERVER将其转换为YYYYMMDD
,如20031127?
答案 0 :(得分:2)
要根据ISO标准转换日期,您可以写为:
SELECT CONVERT (VARCHAR(8), GETDATE(),112) as [YYYYMMDD]
答案 1 :(得分:2)
SELECT CONVERT (VARCHAR(8), cast('2003-11-27 00:00:00.000' as datetime), 112)
答案 2 :(得分:1)
取决于您的日期宣告方式。
DECLARE @date datetime = '2003-11-27T00:00:00.000' -- datetime
DECLARE @date2 char(23) = '2003-11-27 00:00:00.000' -- char(23)
SELECT
convert(char(8), @date, 112) datetimeconvert,
convert(char(8), convert(datetime, @date2, 121), 112) charconvert
结果:
datetimeconvert charconvert
20031127 20031127
答案 3 :(得分:1)
SQL Server中的日期类型没有任何格式,它们是二进制类型。格式仅在将它们转换为文本或尝试解析文本文字时适用。
您没有指定您发布的价值,或者您想用它做什么。有几种可能性:
datetime
字段的时间部分。然后只需cast(myField as date)
datetime
或date
字段的日期部分:FORMAT(myField,'yyyyMMdd')
或CONVERT(varchar(8),myField,112)
。 FORMAT提供了与.NET的String.Format一样多的灵活性,但在这种情况下CONVERT就足够了。FORMAT(CONVERT(date,'2003-11-27 00:00:00.000',121),'yyyyMMdd')
。您可以将原始字符串转换为日期,然后根据需要对其进行格式化。