【SQL】字串〔西元(yyyymmdd)〕轉日期格式

通常在撰寫程式中,會用字串(yyyymmdd EX:20121205)來代表日期,字串的好處方便直接相加減與拆開合併及轉換(西元<->民國)等運用,然而要寫入日期格式欄位時,就必須做轉換。轉換方是很多種,一種是將字串(yyyymmdd)轉換成(yyyy/mm/dd)或(yyyy-mm-dd)格式填入;另一種最快的方式直接運用SQL內建函數做轉換,格式為CONVERT(datetime, 'yyyymmdd')即可。前提之下字串(yyyymmdd)必須要是合法的日期。所以在寫入前,最好先做判斷。

PS:要測試(yyyymmdd)是否為合法日期可以下ISDATE函數

select ISDATE ('20130105') as T
輸出:1 代表合法日期

select ISDATE ('20121131') as T
輸出:0 代表不合法日期

字串[西元(yyyymmdd)]轉日期格式
select CONVERT(datetime, '20121205') as date_1
輸出:2012-12-05 00:00:00.000

參考資料:
http://msdn.microsoft.com/zh-tw/library/ms187347.aspx
MSDN ISDATE() 說明

註:Convert 日期用法可參考My blog

留言

這個網誌中的熱門文章

【ASP】日期轉換(西元<-->民國)

【VB】使用NPOI元件來匯出Excel--DataTableToExcel

【SQL】符號切割字串變成多欄