更新: 尝试此
后,我仍然会收到此(4/14/2012 2:44:01 PM)
结果
select convert(varchar(30), '4/14/2012 2:44:01 PM',121)
结束更新
我应该使用什么格式来获得此结果集:
2012-04-14 14:44:01.683
我尝试使用它,但没有显示微/毫秒
select convert(varchar(23), '4/14/2012 2:44:01 PM',120)
得到了我的结果:
4/14/2012 2:44:01 PM
答案 0 :(得分:4)
你非常接近 - 在MSDN联机丛书的CAST and CONVERT一章中,你错过了一行的正确答案....你可以使用样式号。 121( ODBC规范(以毫秒为单位))获取您正在寻找的结果:
SELECT CONVERT(VARCHAR(30), GETDATE(), 121)
这给了我输出:
2012-04-14 21:44:03.793
根据您更新的问题 更新 - 当然这不起作用 - 您正在转换字符串(这个:'4/14/2012 2:44:01 PM'
只是一个字符串 - 不日期时间!)到字符串......
您需要首先将您拥有的字符串转换为DATETIME
并那么将其转换回字符串!
试试这个:
SELECT CONVERT(VARCHAR(30), CAST('4/14/2012 2:44:01 PM' AS DATETIME), 121)
现在你应该得到:
2012-04-14 14:44:01.000
显然,所有零都是毫秒,因为您的原始值不包含任何....
答案 1 :(得分:2)
select convert(varchar(30), CAST('4/14/2012 2:44:01 PM' As DATETIME),121)
答案 2 :(得分:2)
以日期时间格式转换日期字符串,如下所示
select convert(varchar(23), convert(datetime,'4/14/2012 2:44:01 PM'),120)