Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

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 内で使用できます。GETDATECURRENT_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())

関連項目

FeedbackOpens in a new tab