現在の日時を取得する

SQL Server の Advent Calendar が無さそうなので、とりあえず一人 Advent Calendar やってみることにします。 お題は、SQL Server といいつつ T-SQL メインです。

SQL Server/T-SQL Advent Calendar 1日目 です。

通常は
GETDATE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
GETUTCDATE (Transact-SQL)
GETDATE() と CURRENT_TIMESTAMP は等価です。CURRENT_TIMESTAMP が SQL標準なのかな。

もっと精度が欲しい場合は
SYSDATETIME (Transact-SQL)
SYSUTCDATETIME (Transact-SQL)
タイムゾーン付きが欲しければ
SYSDATETIMEOFFSET (Transact-SQL)

select
  * 
from ( values 
  ( 'GETDATE()', GETDATE() )
  , ( 'CURRENT_TIMESTAMP', CURRENT_TIMESTAMP )
  , ( 'GETUTCDATE()', GETUTCDATE() )
  , ( 'SYSDATETIME()', SYSDATETIME() )
  , ( 'SYSUTCDATETIME()', SYSUTCDATETIME() )
) as [table] ( [Name], [Value] )

select 'SYSDATETIMEOFFSET()' as [Name], SYSDATETIMEOFFSET() as [Value]