SQL Server日期格式(YYYY-MM-DD HH:MI:SS.MMM)

时间:2012-04-14 19:37:19

标签: sql-server-2008

更新: 尝试此

后,我仍然会收到此(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

3 个答案:

答案 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)