2016-07-27 123 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关于这些功能。