DATE (SQL) Contents 説明 引数 例 別の方法 関連項目 タイムスタンプを取得して、日付を返す関数です。 Synopsis DATE(timestamp) 説明 DATE(timestamp) はタイムスタンプの式を取得し、データ型が DATE の日付を返します。この関数は CAST(timestamp as DATE) と同等です。以下の文は、タイムスタンプ文字列を日付に変換します。タイムスタンプの時刻部分は検証されますが、返されません。 SELECT DATE('2000-01-01 00:00:00') AS StringToDate -- Display Mode: 01/01/2000 例 : さまざまな形式のタイムスタンプの日付への変換 引数 timestamp タイムスタンプ、日付、または日時の表現を指定する式です。以下のいずれかのデータ型クラスとして timestamp を指定します。 %Library.TimeStampOpens in a new tab %Library.PosixTimeOpens in a new tab %Library.DateOpens in a new tab %Library.IntegerOpens in a new tab 暗黙的な論理タイムスタンプ形式の %Library.NumericOpens in a new tab の値 (+$HOROLOG など)。"数値タイムスタンプ" を参照してください。 %Library.TimeStamp と互換性のある %Library.StringOpens in a new tab の値。"文字列タイムスタンプ" を参照してください。 数値タイムスタンプ 特殊変数 $HOROLOG および $ZTIMESTAMP は、現在の日付を数値文字列として指定します。DATE は、このような文字列を、1840 年 12 月 31 日を表す 0 にキャストします。 SELECT DATE($HOROLOG), -- Returns 0 (12/31/1840) DATE($ZTIMESTAMP) -- Returns 0 (12/31/1840) $HOROLOG または $ZTIMESTAMP を現在の日付として解釈するには、日付の前にプラス (+) 符号を付加することによって数値として解釈されるようにする必要があります。 SELECT DATE(+$HOROLOG), -- Returns the current date DATE(+$ZTIMESTAMP) -- Returns the current date 文字列タイムスタンプ DATE 形式に変換した文字列タイムスタンプには、%Library.TimeStampOpens in a new tab データ型との互換性が必要です。このデータ型で ODBC 日付形式の文字列を格納し、この形式に基づいて DATE 関数で入力文字列を検証します。文字列の検証で問題がなければ、DATE から対応する日付が返されます。検証が失敗すると、DATE からは 1840 年 12 月 31 日に相当する 0 が返されます。空の文字列 ('') を指定した場合も 0 が返されます。NULL 引数は NULL を返します。DATE では以下の検証が実行されます。 文字列が ODBC 形式に対応していること。fff は秒の小数部です。 yyyy-mm-dd hh:mm:ss.fff 文字列に少なくとも完全な日付 yyyy-mm-dd が指定されていること。時刻部分は省略できます。DATE では指定した時刻が検証されますが、その時刻は返されません。任意の時刻を指定できます。例えば、「yyyy-mm-dd hh:」と入力します。 文字列に無効な形式の文字や文字列の末尾に文字が使用されていないこと。先頭のゼロは省略しても指定してもかまいません。 オプションの時刻部分も含め、文字列の数値要素に指定された範囲の有効な値が各要素に使用されていること。以下に例を挙げます。 月の値が 1 ~ 12 の範囲にあること。 日付の値が、うるう年も考慮して、指定された月の日付範囲にあること。 日付が 0001-01-01 から 9999-12-31 の範囲にあること。 例 さまざまな形式のタイムスタンプの日付への変換 以下の文は、データ型 %Library.TimeStampOpens in a new tab のタイムスタンプを DATE データ型に変換します。 SELECT {fn NOW} AS NowCol, DATE({fn NOW}) AS DateCol SELECT CURRENT_TIMESTAMP AS TSCol, DATE(CURRENT_TIMESTAMP) AS DateCol SELECT GETDATE() AS GetDateCol, DATE(GETDATE()) AS DateCol 以下の文は、%Library.TimeStampOpens in a new tab 形式で記述された文字列を DATE に変換します。 SELECT '2022-05-22 13:14:23' AS DateStrCol, DATE('2022-05-22 13:14:23') AS DateCol 以下の文は、%Library.PosixTimeOpens in a new tab タイムスタンプを DATE に変換します。 SELECT TO_POSIXTIME('2022-05-22','YYYY-MM-DD') AS PosixCol, DATE(TO_POSIXTIME('2022-05-22','YYYY-MM-DD')) AS DateCol 以下の文は、InterSystems IRIS® の論理形式で日付を表現した文字列値を DATE に変換します。この文字列値を正しく変換するには、文字列の前にプラス符号 (+) を付加することにより、数値が評価されるようにする必要があります。 SELECT $H AS HoroCol, DATE(+$H) AS DateCol SELECT $ZTIMESTAMP AS TSCol, DATE(+$ZTIMESTAMP) AS DateCol 別の方法 コードを使用して ObjectScript でタイムスタンプと日付を上記と同様に変換するには DATE()Opens in a new tab メソッドを使用します。 WRITE $SYSTEM.SQL.Functions.DATE("2018-02-23 12:37:45") 関連項目 CAST 関数 CURDATE および CURRENT_DATE 関数 CURRENT_TIMESTAMP 関数 GETUTCDATE 関数 NOW 関数 TO_TIMESTAMP 関数 $HOROLOG 特殊変数 $ZTIMESTAMP 特殊変数 FeedbackOpens in a new tab