GETDATE
Synopsis
GETDATE([precision])
引数
precision | オプション — 時刻の精度を秒の小数部の桁数として指定する正の整数。既定値は 0 (秒の小数部なし) です。この既定値は構成可能です。precision 値はオプションであり、括弧が必要となります。 |
概要
GETDATE は、このタイムゾーンの現在のローカル日付とローカル時刻をタイムスタンプとして返します。これはサマータイムなどのローカル時刻調整に合わせて調整されます。
GETDATE は、%TimeStamp データ型形式 (yyyy-mm-dd hh:mm:ss.ffff) でタイムスタンプを返します。
既定の日付/時刻形式を変更するには、各種日付/時刻オプションで SET OPTION コマンドを使用します。
GETDATE は、SELECT 文の選択リスト内、またはクエリの WHERE 節内で使用できます。レポートの設計では、GETDATE は、レポートが作成されるたびに、そのときの時刻/日付を印刷するために使用できます。また GETDATE は、トランザクションが発生した時刻のログ記録など、活動を追跡するのに便利です。
GETDATE は、フィールドの既定値を指定するために CREATE TABLE 内で使用できます。GETDATE は CURRENT_TIMESTAMP の同義語で、Sybase や Microsoft SQL Server との互換性を確保するために用意されています。
CURRENT_TIMESTAMP 関数および NOW 関数を使用して、現在のローカル日付とローカル時刻をタイムスタンプとして返すこともできます。精度は CURRENT_TIMESTAMP ではサポートされていますが、NOW ではサポートされていません。
現在の日付のみを返すには、CURDATE または CURRENT_DATE を使用します。現在の時刻のみを返すには、CURRENT_TIME または CURTIME を使用します。これらの関数では、データ型として DATE または TIME を使用します。これらの関数は、いずれも精度をサポートしません。
TIMESTAMP データ型は、同じ形式で値を格納および表示します。TIME データ型および DATE データ型では、値は、$HOROLOG 形式で整数として格納されます。それらは、表示形式または論理 (格納) 形式のどちらかで表示できます。日付および時刻のデータ型は、CAST または CONVERT 関数を使用して変更できます。
協定世界時 (UTC)
GETDATE は、現在のローカル日付とローカル時刻を返します。Caché SQL のタイムスタンプ関数、日付関数、および時刻関数は、GETUTCDATE を除いてすべて、ローカル・タイム・ゾーン設定に固有のものとなります。GETUTCDATE は、現在の UTC (ユニバーサル) の日付と時刻を TIMESTAMP 値として返します。ObjectScript の $ZTIMESTAMP 特殊変数を使用して、ユニバーサルな (タイム・ゾーンに依存しない) 現在のタイムスタンプを取得することもできます。
秒の小数部の精度
GETDATE では、小数点以下 9 桁までの精度の値を返すことができます。返される精度の桁数は precision 引数を使用して設定されます。precision 引数の既定値は、以下の方法で構成できます。
-
SET OPTION で TIME_PRECISION オプションを使用します。
-
$SYSTEM.SQL.SetDefaultTimePrecision()Opens in a new tab メソッド呼び出し。
-
管理ポータルに移動し、[構成]、[SQL およびオブジェクトの設定]、[一般 SQL 設定] (システム, 構成, 一般 SQL設定) の順に選択します。[GETDATE()、CURRENT_TIME、および CURRENT_TIMESTAMP の既定の時間精度] の現在の設定を表示して編集します。
返される精度の小数点以下の桁数の既定値に 0 ~ 9 の整数を指定します。既定値は 0 です。実際に返される精度はプラットフォームに依存し、システムで使用可能な精度を超えた precision の桁はゼロとして返されます。
秒の小数部は、丸められずに、常に指定された精度に切り捨てられます。
例
以下の例は、現在の日付と時刻を TIMESTAMP 形式で返します。
SELECT GETDATE() AS DateTime
以下の例は、2 桁の精度で現在の日付と時刻を返します。
SELECT GETDATE(2) AS DateTime
以下の埋め込み SQL の例は、ローカル・タイムスタンプ (タイム・ゾーン依存) とユニバーサル・タイムスタンプ (タイム・ゾーン非依存) を比較します。
&sql(SELECT GETDATE(),GETUTCDATE() INTO :a,:b)
IF SQLCODE'=0 {
WRITE !,"Error code ",SQLCODE }
ELSE {
WRITE !,"Local timestamp is: ",a
WRITE !,"UTC timestamp is: ",b
WRITE !,"$ZTIMESTAMP is: ",$ZDATETIME($ZTIMESTAMP,3,,3)
}
以下の例は、Orders テーブルの指定された行の LastUpdate フィールドに、現在のシステム日付と時刻を設定します。GETDATE は、現在の日付と時刻を ODBC タイムスタンプとして返します。
UPDATE Orders SET LastUpdate = GETDATE()
WHERE Orders.OrderNumber=:ord
以下の例では、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())
関連項目
-
SQL タイムスタンプ関数 : CAST、CONVERT、CURRENT_TIMESTAMP、GETUTCDATE、NOW、SYSDATE、TIMESTAMPADD、TIMESTAMPDIFF、TO_TIMESTAMP
-
SQL 現在日時関数:CURDATE、CURRENT_DATE、CURRENT_TIME、CURTIME
-
ObjectScript : $ZDATETIME 関数、$HOROLOG 特殊変数、$ZTIMESTAMP 特殊変数