SQL Server日期格式yyyymmdd

问题描述:

我有一个varchar列,其中某些值的格式为mm/dd/yyyy,有些值的格式为yyyymmddSQL Server日期格式yyyymmdd

我想将所有mm/dd/yyyy日期转换为yyyymmdd格式。做这个的最好方式是什么?由于

表是Employees和列是DOB

+3

实际'date' /'datetime'值列别没有格式。你的意思是说你在'char' /'varchar'列中有包含日期​​文本表示的列吗? – Dai

+2

不要在varchar列中存储日期/时间值...请改用适当的数据类型。 – jarlh

假设你的“日期”一栏是不实际的日期。

Select convert(varchar(8),cast('12/24/2016' as date),112) 

Select format(cast('12/24/2016' as date),'yyyyMMdd') 

返回

20161224 

在SQL Server中,你可以这样做:

select coalesce(format(try_convert(date, col, 112), 'yyyyMMdd'), col) 

这尝试的转换,保持前值(如果可用)。

注意:我希望你学到了关于将日期存储为日期而不是字符串的课程。

试试这个....

SELECT FORMAT(CAST(DOB AS DATE),'yyyyMMdd') FROM Employees; 

DECLARE @v DATE= '3/15/2013' 

SELECT CONVERT(VARCHAR(10), @v, 112) 

你可以将任何日期格式或日期时间格式年月日,无定界符

+3

你可以添加更多的细节? – Jonas