我在我的SQL表中有一列名爲'日期',其中日期以不同格式存儲,如: 25/5/2000, 2013年6月1日, 5/1/1996, 1990年1月23日等在SQL表中標準化一列
我想將所有這些日期轉換爲單一格式,例如DD/MM/YYYY或MM/DD/YYYY。我該怎麼做?
我在我的SQL表中有一列名爲'日期',其中日期以不同格式存儲,如: 25/5/2000, 2013年6月1日, 5/1/1996, 1990年1月23日等在SQL表中標準化一列
我想將所有這些日期轉換爲單一格式,例如DD/MM/YYYY或MM/DD/YYYY。我該怎麼做?
使用DATE數據類型作爲存儲類型,並將格式保留到前端。
DATE數據類型自sql 2008以來只是一種有效的類型(即2008,2008 R2和2012)。如果SQL Server的版本無法使用DATE –
,但只有可能使用DATETIME或SMALLDATETIME當然,但2005年是9年和4個版本(2014年,2012年,2008年2月2008年),問題不是標籤爲2005,是嗎? :)此外,DATE似乎比DATETIME更適合現有的值。 – dean
試試這個!
create table Table(DateColumn varchar(20))
insert into Table values ('25/5/2000'), ('25052000'), ('5/1/1996'),('jan-23-1990'),(05012000)
select
case len(DateColumn)
when 10 then convert(date, DateColumn, 103)
when 8 then convert(date, stuff(stuff(DateColumn, 5, 0, '/'), 3, 0, '/'), 103)
when 6 then convert(date, stuff(stuff(DateColumn, 5, 0, '/'), 3, 0, '/'), 3)
when 11 then convert(date,Datecolumn,103)
-- depending on string length you may query this
end
from table
這給了我以下錯誤:「從字符串轉換日期和/或時間時轉換失敗」 –
如果您嘗試在您的列中轉換日期,請使用此示例網站了解您要完成的操作,希望這有助於感謝。 http://www.codeproject.com/Articles/576178/cast-convert-format-try-parse-date-and-time-sql
什麼是您的'日期'列的數據類型?我猜它是varchar()。你怎麼知道任何日期的格式? –
我同意其他人 - 類型應該是日期時間。我嘗試運行像'更新日期SET字符串日期= CONVERT(varchar,CAST(字符串日期時間),101)''它嘗試處理所有不同類型的日期失敗 – Danny
有一種簡單的方法來將char轉換爲datetime,但沒有辦法來確定你在哪裏有每行的格式。 – Rodion