我有table
存储启动时间和结束时间。
我有
将字符串转换为smalldatetime时转换失败 数据类型。
使用table
选择以下查询时出错。
select CAST(substring(CONVERT(varchar,convert(smalldatetime,o.StartTime),114), 1,2) as int)
from TimeTable O
在分析中,我发现Few Records的Starttime为'9:30 PM'
导致错误。 (其他记录以'09:30 PM'
作为开始时间)。我已排除'9:30 PM'记录并成功执行查询。
问题在这里,
如果我在select
语句中明确指定了值,如下所示
SELECT CAST(substring(CONVERT(varchar,convert('9:30 PM',o.StartTime),114), 1,2) as int)
我没有收到任何错误。
但是,当我从table
中选择时,我得到了错误。任何人都可以帮忙吗?
答案 0 :(得分:2)
您实际需要的输出是什么?
如果您希望将“9:30 PM”或“09:30 PM”等值转换为时间格式,则可以继续使用下面的
SELECT CAST(CONVERT(VARCHAR(8), '9:30 PM', 108)AS TIME)
SELECT CAST(CONVERT(VARCHAR(8), '09:30 PM', 108)AS TIME)
否则,如果您希望将其存储在datetime或smalldatetime
中那么这对你有用
SELECT CAST(CONVERT(VARCHAR(8), '9:30 PM', 108)AS DATETIME)
SELECT CAST(CONVERT(VARCHAR(8), '09:30 PM', 108)AS DATETIME)