【发布时间】:2015-04-23 21:50:40
【问题描述】:
我有一列,数据类型是字符串,显示像'30MAY2014:00:00:00'这样的记录,有些行是空白的。现在我需要将字符串更改为日期,例如'20140530',但空白行仍然保持空白。我正在使用 sql server 2012。这是我的查询:
select
CONVERT(VARCHAR,substring(ColumnName,6,4))
+RIGHT('0'+ (CONVERT(VARCHAR,(CASE substring(ColumnName,3,3)
WHEN 'JAN' THEN 01
WHEN 'FEB' THEN 02
WHEN 'MAR' THEN 03
WHEN 'APR' THEN 04
WHEN 'MAY' THEN 05
WHEN 'JUN' THEN 06
WHEN 'JUL' THEN 07
WHEN 'AUG' THEN 08
WHEN 'SEP' THEN 09
WHEN 'OCT' THEN 10
WHEN 'NOV' THEN 11
ELSE 12
END))),2)
+ CONVERT(VARCHAR,substring(ColumnName],1,2))
FROM table
如果列中有记录,则正确,但空白行显示12。 如何修改我的查询? 我还有一列,这个月的文件显示所有行都是空白的,我必须做完全相同的工作。将空白字符串更改为空白日期,我尝试相同的查询,SQL 服务器显示错误:从字符串转换日期和/或时间时转换失败。 任何建议表示赞赏。
【问题讨论】:
-
"
now I need to change the string to date, like '20140530'" 否。您需要将其更改为DateTime列。
标签: sql-server string date