2016-12-27 273 views
2

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

我想將所有mm/dd/yyyy日期轉換爲yyyymmdd格式。做這個的最好方式是什麼?由於

表是Employees和列是DOB

+3

實際'date' /'datetime'值列別沒有格式。你的意思是說你在'char' /'varchar'列中有包含日期​​文本表示的列嗎? – Dai

+2

不要在varchar列中存儲日期/時間值...請改用適當的數據類型。 – jarlh

回答

6

假設你的「日期」一欄是不實際的日期。

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

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

返回

20161224 
2

在SQL Server中,你可以這樣做:

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

這嘗試的轉換,保持前值(如果可用)。

注意:我希望你學到了關於將日期存儲爲日期而不是字符串的課程。

2

試試這個....

SELECT FORMAT(CAST(DOB AS DATE),'yyyyMMdd') FROM Employees; 
1
DECLARE @v DATE= '3/15/2013' 

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

你可以將任何日期格式或日期時間格式年月日,無定界符

+3

你可以添加更多的細節? – Jonas