我有一个专栏abc varchar(100)
与数据类似2011-09-26 16:36:57.810000
我想将此列转换为DATETIME
...
但做一个
Convert(DATETIME, abc,120)
给出了这个错误:
从字符串转换日期和/或时间时转换失败。
任何人都可以帮我转换我的varchar
格式化为datetime
在 SQL Server 2008 中?
提前致谢
你可以使用样式 121 但你可以有毫秒只有 3 位数字 (i.e yyyy-mm-dd hh:mi:ss.mmm(24h)
) 格式。
declare @abc varchar(100)='2011-09-26 16:36:57.810'
select convert(datetime,@abc,121)
因此,您可以通过在转换之前将 varchar 字段限制为 23 个字符来进行排序:
declare @abc varchar(100)='2011-09-26 16:36:57.810000'
select convert(datetime,convert(varchar(23),@abc),121)
或者使用Left()
获取前 23 个字符的函数如下:
select convert(datetime,left(@abc,23),121)
尽量避免将日期存储为字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)