我的数据集的日期格式如下:
10/18/2007 8:00 A.M.
10/20/2007 10:00 A.M.
等。
我在查找一致查询以将此格式的一组varchars转换为datetime以插入datetime列时遇到了很多麻烦。我尝试了很多CONVERT样式(在https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql找到)但没有一个真正有用。
答案 0 :(得分:1)
在Sql Server 2012及更高版本中:当转换失败而不是错误时,每个都会返回null
。
declare @str varchar(32) = '10/20/2007 10:00 A.M.'
select try_parse(replace(@str,'.M.','M') as datetime using 'EN-us')
返回:2007-10-20 10:00:00
rextester演示:http://rextester.com/KWCF9843
答案 1 :(得分:1)
您只需将句点删除,然后只需转换
即可Select try_convert(datetime,replace('10/18/2007 8:00 A.M.','.',''))
返回
2007-10-18 08:00:00.000