我的表中有两列:nvarchar 数据类型的 open、close。它们的值类似于“10:50:PM”。它们应该是时间数据类型。
我无法对列执行任何与时间相关的查询。我尝试过转换、转换、更新和更改列,但没有成功。它不断抛出错误消息:从字符串转换日期和/或时间时转换失败
SQL 期望导入的时间字符串采用特定格式,以允许强制转换或转换为 TIME 数据类型。列中的值 (“10:50:PM”) 的时间格式无效,因为 AM/PM 时间的正确格式应为“hh:mm:ss AM/PM”。
您需要更正从中导入的 csv 文件中的格式,或者在导入后重新格式化 SQL 中的列。
您可以使用 STUFF 函数在 AM/PM 之前插入一个空格,然后时间字符串变为“10:50:00 PM”。
UPDATE tableName
SET Open = STUFF(Open, LEN(Open) - 1, 0, ' '),
Close = STUFF(Close, LEN(Close) - 1, 0, ' ');