SQL Server,奇怪的DATETIME行为

时间:2011-05-16 05:29:04

标签: sql-server-2005 sql-server-2008 datetime

我的本​​地系统上有SQL Server Express 2008,我在datetime列中进行了一些插入操作。

问题在于,在godaddy上托管的同一系统(SQL Server 2005)上记录了datetime条目作为上一个日期和13:00的时间

E.g。正在插入的日期为07/01/2010 00:00:00

本地数据库中的条目= 07/01/2010 00:00:00
在Prod DB中输入= 06/30/2010 13:00:00

可能是datetime存储的某个服务器/数据库级别设置吗?

编辑1:

请注意,我正在插入预定义的datetime值,正在插入的日期正好是07/01/2010 00:00:00。我没有使用GETDATE()。

编辑2:解决方案

好的,感谢答案的人,但问题不是来自SQL Server,而是来自从序列化数据集的XML形式读取的数据。它将日期时间信息发送为'mm / dd / yyyy T00:00:00 + 4:00'

我所做的就是删除从中移除时间段,然后将其插入数据库。

干杯!

2 个答案:

答案 0 :(得分:1)

  • 您在迪拜= GMT + y小时
  • Godaddy在美国= GMT-x小时

GETDATE()提供SQL服务器时间

您应该使用GETUTCDATE()来提供GMT(UTC,因为我们失去了它出现的帝国),这将是全球一致的。

答案 1 :(得分:0)

时差让我想知道这是否是UTC的事情。您是通过SSMS还是通过应用程序代码运行它?

它总是会落后当地11小时吗?

这是您给列的明确时间,还是列默认值(可能是GETUTCDATE ())?