【发布时间】:2009-09-24 15:40:18
【问题描述】:
在 sql server 2005 表中,我有一个 dd/mm/yyyy 格式的日期列。但是 sql server 2008 上的所有内容都是 yyyy-mm-dd。
我在哪里可以将存储在 2008 年的日期格式更改为 2005 年的格式?
谢谢,
【问题讨论】:
标签: sql-server sql-server-2005 sql-server-2008
在 sql server 2005 表中,我有一个 dd/mm/yyyy 格式的日期列。但是 sql server 2008 上的所有内容都是 yyyy-mm-dd。
我在哪里可以将存储在 2008 年的日期格式更改为 2005 年的格式?
谢谢,
【问题讨论】:
标签: sql-server sql-server-2005 sql-server-2008
日期时间类型总是以相同的格式物理存储。它使用 8 个字节,前 4 个字节是一个 int,用于存储基准日期 1/1/1900 之前或之后的天数,第二个 4 个字节是一个 int,表示自午夜以来的 1/300 秒数.请参阅此处了解更多信息 - http://msdn.microsoft.com/en-us/library/ms187819(SQL.90).aspx。
查看数据时,您可以使用SET DATEFORMAT 或CONVERT 函数更改数据的表示方式。 Technet 有一个 good list 的日期时间函数,也可用于 T-SQL。
【讨论】:
SELECT CONVERT(DATETIME,'13/04/2006',103)
更多关于日期/时间格式here。
【讨论】:
将 DateTime 转换为字符串时使用的默认日期格式不依赖于 Sql 版本,它取决于 数据库的排序规则。您可以更改排序规则使用 Sql Management Studio,右键单击数据库、属性、选项、排序规则。
在您的情况下,如果您将两个数据库设置为相同的排序规则,您应该会看到相同的格式。
编辑
我才知道我写的不是真的。默认日期时间格式实际上并不取决于为访问数据库的用户设置的默认语言。如果这是 SQL 用户,您可以通过右键单击用户、属性、默认语言来设置它。
您还可以在数据库级别设置默认语言,在创建新用户时使用。
【讨论】: