SQL Server 字串轉時間 資料驗證

2022-02-18 02:22:04 字數 2521 閱讀 7048

最近要從乙個資料庫將資料轉移到另外乙個資料庫,期間涉及到一些字串轉時間型別出現了很多問題,將自己的一點愚見貼上來備忘。

case 

when cnct_char31 like '[12][0-9][0-9][0-9][-.][1-9][-.][1-9]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]0[1-9]-0[1-9]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]0[1-9]-[1-9]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.][1-9]-0[1-9]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.][13456789][-.][12][0-9]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]0[13456789][-.][12][0-9]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.][13578][-.]3[01]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]0[13578][-.]3[01]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.][469][-.]30' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]0[469][-.]30' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]2[-.]1[0-9]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]02[-.]1[0-9]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]2[-.]2[0-8]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]02[-.]2[0-8]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]1[012][-.][1-9]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]1[012][-.]0[1-9]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]1[012][-.][12][0-9]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]1[02][-.]3[01]' then cast(convert(datetime,cnct_char31,120) as varchar)

when cnct_char31 like '[12][0-9][0-9][0-9][-.]11[-.]30' then cast(convert(datetime,cnct_char31,120) as varchar)

else null end

若有疑問或不正之處,歡迎提出指正和討論。

sql server日期時間轉字串

一 sql server日期時間函式 sql server中的日期與時間函式 1.當前系統日期 時間 select getdate 2.dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值 例如 向日期加上2天 select dateadd day,2,2004 10 1...

sql server日期時間轉字串

一 sql server日期時間函式 sql server中的日期與時間函式 1.當前系統日期 時間 selectgetdate 2.dateadd在向指定日期加上一段時間的基礎上,返回新的 datetime值 例如 向日期加上2天 selectdateadd day,2,2004 10 15 返回...

sql server日期時間轉字串

一 sql server日期時間函式 sql server中的日期與時間函式 1.當前系統日期 時間 selectgetdate 2.dateadd在向指定日期加上一段時間的基礎上,返回新的 datetime值 例如 向日期加上2天 selectdateadd day,2,2004 10 15 返回...