0

我正在尝试将我现有的 sql 日期转换为yyyy-mm-dd使用以下命令以格式存储的表中的dd-mm-yyyy. 这样做时,我可以成功地将其转换为nvarchar数据类型,但是当将其转换为日期时,我仍然收到相同的旧格式yyyy-mm-dd.

这是查询

Select 
    Convert(date, CONVERT(VARCHAR(10), a.LogDateTime, 103), 103) AS LDate  
from sec.[Log] AS a

我也尝试nvarchar使用以下脚本从当前转换,但结果保持不变。

SELECT convert(date, '23/10/2016', 103)

任何人都可以说出究竟是什么问题吗?因为我希望我的日期从我们的格式转换为英国格式而不更改其数据类型。

4

2 回答 2

2

日期不以任何文本格式存储。DATETIME 值以内部格式存储,占用 8 个字节的磁盘存储空间。它以文本形式存储。

仅供参考,yyyy-mm-dd 不是美国格式。它只是一种普遍接受的、明确的显示格式,SQL Server 团队决定使用它在 SQL Server Management Studio 中显示日期值。

如果您必须以特定的形式显示它,则必须在显示层中这样做,例如您的 Visual Studio 创建的桌面应用程序。不幸的是,没有设置来控制 SSMS 中的默认格式,因此如果您打算在 SSMS 中查看它,您只需使用正确的格式 (103) 转换它。

declare @d datetime
set @d = '20120506'
select CONVERT(char(10), @d, 103) -- or column instead of variable
于 2012-10-04T01:08:01.070 回答
1
SELECT  CONVERT (VARCHAR(15), logdatetime, 105)
FROM    sec.[log]
于 2012-10-04T05:26:29.533 回答