我有一个varchar列[Start_time(hh:mm)],其格式为以下格式:
11:18:00 a.m.
除了少数NULLS之外,这在整个专栏中都是一致的。
我使用datetime数据类型创建了一个新列[StartTime]以接收转换后的值。
我试过CAST:
UPDATE mytable
SET StartTime = CAST([Start_time (hh:mm)] AS DATETIME)
我也试过转换:
UPDATE dbo.mytable
SET StartTime = CONVERT(DATETIME, [Start_time (hh:mm)], 120)
我使用120,因为它匹配我们在数据库中使用的日期时间格式,我猜日期部分只是默认值。我也试过108,因为它只是时间的流逝,但这也不起作用。
任何帮助将不胜感激,
由于
答案 0 :(得分:0)
嗯,错误是由'a.m。'中的点引起的。
所以我摆脱了那些:
UPDATE mytable
SET [Start_time (hh:mm)] = REPLACE([Start_time (hh:mm)], '.', '')
然后这很好用:
UPDATE mytable
SET StartTime = CAST([Start_time (hh:mm)] AS DATETIME)
输出示例:
1900-01-01 11:18:00.000
我们会在重要时忽略“默认”日期,因为我们将实际日期值存储在另一列中。
感谢你们的建议。