Datetime2格式为dd / mm / yyyy

时间:2014-01-08 14:19:00

标签: sql sql-server-2008 datetime2

我在SQL Server 2008数据库中有一个数据类型为datetime2的列。这意味着我的日期以YYYY-MM-DDThh:mm:ss的格式显示。但是,默认情况下我需要的日期格式为dd / mm / YYYY,我无法更改列数据类型。此外,date LANG2格式不受SET LANGUAGE和SET DATEFORMAT会话区域设置的影响。最后,我不想使用convert()功能,否则我需要重写所有查询。

如何才能实现这一目标?

非常感谢!

2 个答案:

答案 0 :(得分:3)

当你说“显示”时 - 显示在哪里?在SSMS?然后,您需要更改您的查询。在app / report中?然后更改应用程序代码/报告以正确格式化日期。

日期是SQL中的日期 - 当您可视化日期时,“格式”只是一个考虑因素。如果您未指定格式(使用CONVERT),则会使用datetime2的“默认”格式。没有系统范围的设置来覆盖我所知道的datetime2的默认值。

答案 1 :(得分:2)

不要考虑日期的存储方式。如果您确实希望日期显示为dd/mm/yyyy,请在最后一步中应用该格式(例如,在C#中使用Format()或ToString())。或者,如果您在查询级别需要此功能,请正确编写查询 - 您必须返回并添加CONVERT(),例如:

DECLARE @d DATETIME2 = CURRENT_TIMESTAMP;
SELECT CONVERT(CHAR(10), @d, 103);

将数据更改为错误的数据类型会更改数据类型是完全错误的,这样您就可以在数据库级别强制执行首选格式。