現在の日付と時刻を返す、汎用日付/時刻関数です。
Synopsis
GETDATE は、引数なしまたはオプションの精度引数で発行できます。時刻は %TimeStamp 形式で返されます。ODBC タイプは TIMESTAMP で、LENGTH は 16、PRECISION は 19 です。
日付と時刻を表す文字列は、以下の形式で返されます。
既定の日付/時刻形式を変更するには、各種日付/時刻オプションで
SET OPTION コマンドを使用します。
GETDATE は、主に
SELECT 文のセレクト・リストや、クエリの
WHERE 節で使用されます。レポートの設計では、
GETDATE は、レポートが作成されるたびに、そのときの時刻/日付を印刷するために使用できます。また
GETDATE は、トランザクションが発生した時刻のログ記録など、活動を追跡するのに便利です。
現在の日付と時刻を TIMESTAMP データ型で返す場合は、
CURRENT_TIMESTAMP および
NOW 関数を使用できます。CURRENT_TIMESTAMP は精度をサポートしますが、NOW はサポートしません。
埋め込み SQL を使用するときは、これらのデータ型の動作が異なります。TIMESTAMP データ型は、同じ形式で値を格納および表示します。TIME および DATE データ型は
$HOROLOG 形式の整数として値を格納し、SQL で表示されるときは日付または時刻表示形式に変換され、埋め込み SQL から返されるときは整数として返されます。日付および時刻のデータ型は、
CAST または
CONVERT 関数を使用して変更できます。
すべての Caché SQL タイムスタンプ関数は、ローカル・タイム・ゾーン設定に依存します。ユニバーサルな (タイム・ゾーンに依存しない) 現在のタイムスタンプを取得するには、Caché ObjectScript の
$ZTIMESTAMP 特殊変数を使用します。
-
-
ObjectScript $SYSTEM.SQL.SetDefaultTimePrecision() 関数を呼び出します。
-
返される小数点以下の桁数の既定値を含めて 0 ~ 9 の整数を指定します。初期の既定値は 0 です。実際に返される精度はプラットフォームに依存し、システムで使用可能な精度を超えた
precision の桁はゼロとして返されます。
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 GETDATE()
INTO :a
FROM Sample.Person)
IF SQLCODE'=0 {
WRITE !,"Error code ",SQLCODE }
ELSE {
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())