SQL Server 字符串转时间 数据验证
最近要从一个数据库将数据转移到另外一个数据库,期间涉及到一些字符串转时间类型出现了很多问题,将自己的一点愚见贴上来备忘。
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
若有疑问或不正之处,欢迎提出指正和讨论。