2016-07-27 121 views

回答

2

它在MSDN明確表示:

GETDATE()返回當前數據庫系統時間戳作爲日期時間值 而不數據庫時區偏移。此值來自運行SQL Server 實例的計算機的 操作系統。

+0

謝謝@Andy Korneyev – Abdul

1

據我所知有六個SQL Server日期函數,它們都從操作系統派生出當前日期(是否可以從外部獲取日期?是否有可能在同一個日期上有多個日期電腦?)。區別在於時區及其解釋。看看這個查詢:

SELECT 'SYSDATETIME' [Name], SYSDATETIME() 
UNION ALL 
SELECT 'SYSDATETIMEOFFSET', SYSDATETIMEOFFSET() 
UNION ALL 
SELECT 'SYSUTCDATETIME', SYSUTCDATETIME() 
UNION ALL 
SELECT 'CURRENT_TIMESTAMP', CURRENT_TIMESTAMP 
UNION ALL 
SELECT 'GETDATE', GETDATE() 
UNION ALL 
SELECT 'GETUTCDATE', GETUTCDATE(); 

在我的電腦這產生了:

SYSDATETIME   2016-07-27 13:44:12.8562698 +00:00 
SYSDATETIMEOFFSET 2016-07-27 13:44:12.8562698 +02:00 
SYSUTCDATETIME  2016-07-27 11:44:12.8562698 +00:00 
CURRENT_TIMESTAMP 2016-07-27 13:44:12.8530000 +00:00 
GETDATE    2016-07-27 13:44:12.8530000 +00:00 
GETUTCDATE   2016-07-27 11:44:12.8530000 +00:00 

我的建議是分析這個劇本,看到差異和閱讀MSDN Documentation關於這些功能。