有什么方法可以将nvarchar数据类型转换为时间数据类型吗?

问题描述 投票:0回答:1

我的表中有两列:nvarchar 数据类型的 open、close。它们的值类似于“10:50:PM”。它们应该是时间数据类型。

我无法对列执行任何与时间相关的查询。我尝试过转换、转换、更新和更改列,但没有成功。它不断抛出错误消息:从字符串转换日期和/或时间时转换失败

sql time sqldatatypes
1个回答
0
投票

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, ' ');
© www.soinside.com 2019 - 2024. All rights reserved.