2016-06-01 220 views
0

我们刚刚将一个应用程序投入使用其SQL Server RDS托管在AWS上的生产。 我们发现数据库设置为UTC时间,我们的本地开发数据库不是。例如, 。我正在尝试插入2016-06-27 08:00的日期。这在我们的本地服务器上正常工作,但在AWS上,日期设置为2016-06-26 22:00如何更改SQL Server日期

我试图在本地服务器上复制问题,并将服务器的时区更改为UTC ,但日期被插入为2016-06-27 08:00,但我现在应该预计它将被插入为2016-06-26 22:00。 是否有一些SQL Server设置需要更改为自动转换为插入UTC的日期?

+0

尝试更改安装sql的服务器的数据和时区。 –

+0

我尝试更改我的开发服务器上的时区。我的数据仍被插入为2016-06-27 08:00,当我期望它被插入为2016-06-26 22:00 – user1024941

+0

由于AWS不支持修改RDS SQL Server数据库实例的时区,因为SQL Server使用操作系统时间。唯一已知的解决方法是在应用程序级别创建函数来抵消时区。 –

回答

0

Sql Server DateTime数据类型不知道任何有关时区的内容。插入的时间由发布时间的应用程序决定。所以这个问题将在您的应用程序中,而不是在数据库中。

我的建议是要么:

  1. 存储所有日期时间的作为UTC节省
  2. 使用存储时区信息的DateTimeOffset类型以及时间
之前将它们转换应用程序
+0

如果它的应用程序,为什么插入的时间与我的开发和生产服务器不同? – user1024941

+0

可能有许多原因。为了帮助,我需要了解一些应用程序,而不仅仅是关于数据库。而插入代码的示例代码将非常有用。 –