我有一个varchar
列,其中某些值的格式为mm/dd/yyyy
,有些值的格式为yyyymmdd
。SQL Server日期格式yyyymmdd
我想将所有mm/dd/yyyy
日期转换为yyyymmdd
格式。做这个的最好方式是什么?由于
表是Employees
和列是DOB
我有一个varchar
列,其中某些值的格式为mm/dd/yyyy
,有些值的格式为yyyymmdd
。SQL Server日期格式yyyymmdd
我想将所有mm/dd/yyyy
日期转换为yyyymmdd
格式。做这个的最好方式是什么?由于
表是Employees
和列是DOB
假设你的“日期”一栏是不实际的日期。
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)
你可以将任何日期格式或日期时间格式年月日,无定界符
你可以添加更多的细节? – Jonas
实际'date' /'datetime'值列别没有格式。你的意思是说你在'char' /'varchar'列中有包含日期文本表示的列吗? – Dai
不要在varchar列中存储日期/时间值...请改用适当的数据类型。 – jarlh