現在の日付と時刻を返す、汎用日付/時刻関数です。
Synopsis
GETDATE([precision])
引数
precision オプション — 時刻の精度を小数秒の桁数として指定します。有効値は整数の 0 ~ 9 で、既定値は 0 (小数秒はなし) です。
概要
GETDATE は、引数なしまたはオプションの精度引数で発行できます。時刻は %TimeStamp 形式で返されます。ODBC タイプは TIMESTAMP で、LENGTH は 16、PRECISION は 19 です。
日付と時刻を表す文字列は、以下の形式で返されます。
yyyy-mm-dd hh:mm:ss.ffff
“f” は、秒単位の小数精度を表します。小数点以下 9 桁までの精度を指定できます。実際の精度はプラットフォームに依存し、システムでサポートされる精度を超える precision 桁はゼロとして返されます。既定の精度は 0 で、これは小数秒が返されないことを意味します。
既定の日付/時刻形式を変更するには、各種日付/時刻オプションで SET OPTION コマンドを使用します。
GETDATE は、主に SELECT 文のセレクト・リストや、クエリの WHERE 節で使用されます。レポートの設計では、GETDATE は、レポートが作成されるたびに、そのときの時刻/日付を印刷するために使用されます。また GETDATE は、トランザクションが発生した時刻のログ記録など、活動を追跡するのに便利です。
GETDATE はフィールドの既定値に使用されます。GETDATECURRENT_TIMESTAMP の同義語で、Sybase や Microsoft SQL Server との互換性に対して提供されています。
現在の日付と時刻を TIMESTAMP データ型で返す場合は、CURRENT_TIMESTAMP および NOW 関数を使用できます。CURRENT_TIMESTAMP は精度をサポートしますが、NOW はサポートしません。
現在の日付のみを返すには、CURDATE または CURRENT_DATE を使用します。現在の時刻のみを返すには、CURRENT_TIME または CURTIME を使用します。これらの関数では、DATE または TIME データ型が使用されます。これらの関数は、いずれも精度をサポートしません。
埋め込み SQL を使用するときは、これらのデータ型の動作が異なります。TIMESTAMP データ型は、同じ形式で値を格納および表示します。TIME および DATE データ型は $HOROLOG 形式の整数として値を格納し、SQL で表示されるときは日付または時刻表示形式に変換され、埋め込み SQL から返されるときは整数として返されます。日付および時刻のデータ型は、CAST または CONVERT 関数を使用して変更できます。
すべての Caché SQL タイムスタンプ関数は、ローカル・タイム・ゾーン設定に依存します。ユニバーサルな (タイム・ゾーンに依存しない) 現在のタイムスタンプを取得するには、Caché ObjectScript の $ZTIMESTAMP 特殊変数を使用します。
以下の例は、現在の日付と時刻を返します。
SELECT DISTINCT GETDATE() AS DateTime
FROM Sample.Person
以下の例は、2 桁の精度で現在の日付と時刻を返します。
SELECT DISTINCT GETDATE(2) AS DateTime
FROM Sample.Person
以下の埋め込み SQL の例は、ローカル・タイムスタンプ (タイム・ゾーン依存) とユニバーサル・タイムスタンプ (タイム・ゾーン非依存) を比較します。
  SET b=$ZDATETIME($ZTIMESTAMP,3)
  &sql(SELECT DISTINCT GETDATE()
  INTO :a
  FROM Sample.Person)
  WRITE !,"GetDate is:    ",a
  WRITE !,"ZTimestamp is: ",b
以下に例を示します。
UPDATE Orders SET LastUpdate = GETDATE()
  WHERE Orders.OrderNumber=:ord
この例は、Orders テーブルの指定された行の LastUpdate フィールドに、現在のシステム日付と時刻を設定します。
以下の例では、CREATE TABLE 文は GETDATE を使用して、StartDate フィールドに対して既定値を設定します。
CREATE TABLE Employees(
     EmpId       INT NOT NULL,
     LastName    CHAR(40) NOT NULL,
     FirstName   CHAR(20) NOT NULL,
     StartDate   TIMESTAMP DEFAULT GETDATE())
関連項目