2016-06-01 221 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

可能有許多原因。爲了幫助,我需要了解一些應用程序,而不僅僅是關於數據庫。而插入代碼的示例代碼將非常有用。 –