2015-09-06 61 views
0

有沒有辦法改變getdate()的結果,同時仍然使用它作爲默認值?例如。能夠加上或減去x小時數。SQL Server 2008 R2修改GETDATE結果作爲默認值

的情況:

德國託管服務器(GMT + 2)與澳大利亞一些終端用戶(GMT + 10)。一列使用默認getdate()值,因此插入德國時間。某些代碼根據澳大利亞時間生成DateTime,因此有8小時差異。

目標:

對於幾個很好的理由的目的是處理這個數據庫上,而不是觸摸應用程序代碼。我想添加8小時德文getdate()默認數據庫值.......或在數據庫上處理這一些其他方式

回答

1

您可以使用默認值使用DATEADD()函數添加8小時的日期:

create table dbo.foo 
(
dateColumn datetime default (dateadd(hour,8,getdate())) 
) 
+0

謝謝。我在這方面的嘗試肯定是錯誤的,因爲你的工作沒有問題。這就是說,鑑於我們在這裏節省了一天的光,這種方法不會100%....... – Mat41

1

我沒有看到任何這樣的選項,它也沒什麼危險。您可以在數據庫中創建一個名稱爲GETDATE的函數,但這需要您在調用函數時以dbo(或模式名稱)作爲前綴。

因此,您可能需要編寫自己的函數並利用GETUTCDATE()並根據時區添加增量。

+0

感謝您的及時迴應。正如我在下面針對哈什所說的那樣,我在嘗試解決他的問題時肯定有錯誤,因爲他的工作沒有問題。使用這種方法會有什麼危險? – Mat41