sql - 转换日期后只得到日期而不是时间

标签 sql database sql-server-2008

我试图在 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

日期已成功格式化,但缺少“时间”。请建议我如何获得数据库时间。

最佳答案

出于某种原因,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;

您可能需要 114 而不是 108:

SELECT CONVERT(VARCHAR(20), StatusDate, 101) + ' ' + CONVERT(VARCHAR(8), StatusDate, 114) AS Post_Converted,
       StatusDesc, RowVersionInitials 
FROM PurchaseOrderStatusHistory;

这使您可以灵活地添加毫秒数。

关于sql - 转换日期后只得到日期而不是时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48426710/

相关文章:

php - 如何为每个唯一行选择最早的实例[min(timestamp)]

mysql - 从 Xoops 数据库中计算并插入评论

mysql - 此 MySQL 查询不使用我的索引

sql-server-2008 - T-SQL - 即时计算 bool 字段

SQL 查询获取给定邮政编码 20 英里半径内的所有邮政编码(地址)

php - 代码中的动态 SQL 查询可能吗?

asp.net - 将 varchar 转换为 int SQl server 2005

database - 在存储过程中传递超过 100 个参数 - PostgreSQL9.5

mysql - SQL 比较同一列中的 2 个日期时间

sql-server-2008 - T-SQL : How does one handle an error in a print statement?