現在の日付と時刻を返す、スカラ日付/時刻関数です。
Synopsis
{fn NOW()}
{fn NOW}
概要
NOW は引数を持たず、TIMESTAMP 型として日付と時刻を返します。引数の括弧はオプションです。
以下の形式で現在の日付と時刻を返します。
yyyy-mm-dd hh:mm:ss
時間は 24 時間形式で表示されます。先頭のゼロは、すべてのフィールドで維持されます。
既定の日付/時刻形式を変更するには、各種日付/時刻オプションで SET OPTION コマンドを使用します。
現在の日付と時刻を返す場合は、CURRENT_TIMESTAMP および GETDATE 関数も使用できます。これらの関数は秒の小数部の精度をサポートし、NOW は精度をサポートしません。これらの関数は、すべて TIMESTAMP データ型を使用します。
現在の日付のみを返すには、CURDATE または CURRENT_DATE を使用します。現在の時刻のみを返すには、CURRENT_TIME または CURTIME を使用します。これらの関数では、DATE または TIME データ型が使用されます。これらの関数は、いずれも精度をサポートしません。
埋め込み SQL を使用するときは、これらのデータ型の動作が異なります。TIMESTAMP データ型は、同じ形式で値を格納および表示します。TIME および DATE データ型は $HOROLOG 形式の整数として値を格納し、SQL で表示されるときは日付または時刻表示形式に変換され、埋め込み SQL から返されるときは整数として返されます。日付および時刻のデータ型は、CAST または CONVERT 関数を使用して変更できます。
すべての Caché SQL タイムスタンプ関数は、ローカル・タイム・ゾーン設定に依存します。ユニバーサルな (タイム・ゾーンに依存しない) 現在のタイムスタンプを取得するには、Caché ObjectScript の $ZTIMESTAMP 特殊変数を使用します。
以下の例は、両方とも現在のシステム日付と時刻を返します。
SELECT DISTINCT {fn NOW()} AS DateTime
FROM Sample.Person
SELECT DISTINCT {fn NOW} AS DateTime
FROM Sample.Person
以下の埋め込み SQL の例は、ローカル・タイムスタンプ (タイム・ゾーン依存) とユニバーサル・タイムスタンプ (タイム・ゾーン非依存) を比較します。
  SET b=$ZDATETIME($ZTIMESTAMP,3)
  &sql(SELECT {fn NOW}
  INTO :a
  FROM Sample.Person)
  IF SQLCODE'=0 {
    WRITE !,"Error code ",SQLCODE }
  ELSE {
    WRITE !,"SQL Now is:    ",a
    WRITE !,"ZTimestamp is: ",b }
以下の例は、Orders テーブルの指定された行の LastUpdate フィールドに、現在のシステム日付と時刻を設定します。
UPDATE Orders SET LastUpdate = {fn NOW()}
  WHERE Orders.OrderNumber=:ord
関連項目