我试图在Sql Server 2008中将日期转换为mm / dd / yy格式但转换后我只有格式化日期但在我的数据库中也有时间。我的数据库值是:
2003-02-28 17:22:43.000
2003-02-28 17:22:43.000
2003-02-28 17:24:26.000
2003-02-28 17:24:26.000
2003-03-24 09:45:25.000
2003-03-24 09:45:25.000
2003-03-24 09:46:36.000
2003-03-24 09:46:36.000
2006-07-20 12:47:31.070
2003-03-27 15:44:53.000
2003-03-27 15:44:53.000
2003-03-27 15:51:56.000
2003-03-27 15:51:56.000
2003-03-27 16:05:03.000
我对转换日期格式的查询是
SELECT CONVERT(VARCHAR(20), StatusDate, 101) AS Post_Converted,StatusDesc, RowVersionInitials from PurchaseOrderStatusHistory
我的输出是
05/29/2014
05/29/2014
05/29/2014
05/29/2014
日期已成功格式化,但'时间'不见了 。请建议我如何获得数据库时间。
答案 0 :(得分:1)
CONVERT
接受第三个参数,在您的情况101
中指定格式。
你需要的是 - 可以 - 这个
SELECT CONVERT(VARCHAR(20), StatusDate, 120)
......或其他合适的输出格式。
对于SQL Server 2012+,有FORMAT()
,但是对于v2008,您无法使用此...
答案 1 :(得分:1)
由于某种原因,SQL Server不提供带有时间组件的mm / dd / yyyy。我建议你使用格式120 - ISO标准格式 - 但你是专门要求这个。
您可以将这些值连接在一起:
SELECT CONVERT(VARCHAR(20), StatusDate, 101) + ' ' + CONVERT(VARCHAR(20), StatusDate, 108) AS Post_Converted,
StatusDesc, RowVersionInitials
FROM PurchaseOrderStatusHistory;
而不是108,你可能想要114:
SELECT CONVERT(VARCHAR(20), StatusDate, 101) + ' ' + CONVERT(VARCHAR(8), StatusDate, 114) AS Post_Converted,
StatusDesc, RowVersionInitials
FROM PurchaseOrderStatusHistory;
这使您可以灵活地添加毫秒。