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())

関連項目

Purpose of this instance: Draft documentation
DocReleaseID: Core2018.1j
Content loaded from:
/staging/ce/2018.1.2/doc/cache/ja-jp/src/
/staging/ce/2018.1.2/doc/ensemble/ja-jp/src/
/staging/ce/2018.1.2/doc/isp/ja-jp/src/
/staging/learning/zenmojo-doc/ja-jp/src/
FeedbackOpens in a new tab