Sql日期字段未完全保存

时间:2009-11-04 12:36:47

标签: sql sql-server datetime insert

我正在尝试在sql中的表的日期时间字段中插入日期值'2010-03-14 02:00:00 AM'(2010年的节日开始时间)服务器2005.日期保存为'2010-03-14 03:00:00 AM'服务器安装在美国(EST时区)。

有人能告诉我日期保存的原因不同吗?

由于 鲁帕

3 个答案:

答案 0 :(得分:2)

当时钟从0200跳到0300时,其中一个时间不存在。

Wikipedia

  

本地时间的数字显示不会在班次正好显示02:00,而是从01:59:59.9跳转到03:00:00.0或者向后跳转到01:00:00.0。

在我看来,你应该在GMT / UTC的数据库中保存所有时间,并且只使用客户端显示的本地时区 - 因此在数据库中所有时间都会单调增加(即时间不会跳回在夏令时结束时)

答案 1 :(得分:2)

GMT!= UTC。 GMT有夏令时,UTC没有。 将您的日期保存为UTC,您就可以开始了。

答案 2 :(得分:1)

一点:根据定义,GMT全年不会改变:在英国,GMT或BST(英国夏令时)都存在。

除此之外,我会重新检查您的数据库和服务器的时区设置。