日時マクロ関数(FireDAC)

提供: RAD Studio
移動先: 案内検索


日時マクロ関数の一覧を以下の表に示します。

関数 説明 ローカルの式エンジン
CURRENT_DATE( ) 現在の日付を返します。 +
CURRENT_TIME[(time-precision)] 現在のローカル時刻を返します。time-precision 引数により、返される値の秒以下の精度を指定することができます。 +
CURRENT_TIMESTAMP [(timestamp-precision)] 現在のローカル日付およびローカル時刻をタイムスタンプ値として返します。timestamp-precision 引数により、返されるタイムスタンプ値の秒以下の精度を指定することができます。 +
CURDATE( ) 現在の日付を返します。 +
CURTIME( ) 現在のローカル時刻を返します。 +
DAYNAME(date_exp) date_exp の日の部分について、データ ソース固有の曜日名(英語を使用するデータ ソースであれば Sunday ~ Saturday または Sun. ~ Sat.、ドイツ語を使用するデータ ソースであれば Sonntag ~ Samstag、など)を含む文字列を返します。 +
DAYOFMONTH(date_exp) date_exp の月のフィールドに基づく月の何日であるかを、1 ~ 31 の範囲の整数値として返します。 +
DAYOFWEEK(date_exp) date_exp の週のフィールドに基づく曜日を、1 ~ 7 の範囲の整数値(1 が日曜日)として返します。 +
DAYOFYEAR(date_exp) date_exp の年のフィールドに基づく年の何日目であるかを、1 ~ 366 の範囲の整数値として返します。 +
EXTRACT(extract-field, extract-source) extract-source の extract-field の部分を返します。extract-source 引数は、日時または間隔の式です。extract-field 引数には、以下のキーワードのいずれかを指定することができます。
  • YEAR
  • MONTH
  • DAY
  • HOUR
  • MINUTE
  • SECOND

返される値の精度は処理系定義です。SECOND 以外が指定された場合のスケールは 0 です。SECOND が指定された場合のスケールは、extract-source フィールドの秒の小数部の精度以上になります。

+
HOUR(time_exp) time_exp の時間のフィールドに基づく時間を、0 ~ 23 の範囲の整数値として返します。 +
MINUTE(time_exp) time_exp の分のフィールドに基づく分を、0 ~ 59 の範囲の整数値として返します。 +
MONTH(date_exp) date_exp の月のフィールドに基づく月を、1 ~ 12 の範囲の整数値として返します。 +
MONTHNAME(date_exp) date_exp の月の部分について、データ ソース固有の月名(英語を使用するデータ ソースであれば January ~ December または Jan. ~ Dec.、ドイツ語を使用するデータ ソースであれば Januar ~ Dezember、など)を含む文字列を返します。 +
NOW( ) 現在の日付および時刻をタイムスタンプ値として返します。 +
QUARTER(date_exp) date_exp の四半期を、1 ~ 4 の範囲の整数値(1 が 1 月 1 日~ 3 月 31 日)として返します。 +
SECOND(time_exp) time_exp の秒のフィールドに基づく秒を、0 ~ 59 の範囲の整数値として返します。 +
TIMESTAMPADD(interval, integer_exp, timestamp_exp) interval が示す種類の間隔 integer_exp を timestamp_exp に加算して計算したタイムスタンプを返します。interval に指定できる有効な値は、以下のキーワードです。
  • FRAC_SECOND(*)
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

秒の小数部は、10 億分の 1 秒単位で指定します。たとえば、以下の SQL 文では、各従業員の名前と入社 1 周年の日付を返します。SELECT NAME, {fn TIMESTAMPADD(‘YEAR’, 1, HIRE_DATE)} FROM EMPLOYEES。timestamp_exp が時刻値であり、interval が日、週、月、四半期、または年を示している場合、timestamp_exp の日付の部分が現在の日付に設定されてから、結果のタイムスタンプが計算されます。timestamp_exp が日付値であり、interval が秒の小数部、秒、分、または時間を示している場合、timestamp_exp の時刻の部分が 0 に設定されてから、結果のタイムスタンプが計算されます。

+
TIMESTAMPDIFF(interval, timestamp_exp1, timestamp_exp2) timestamp_exp2 が timestamp_exp1 よりどれだけ大きいかを表す、interval が示す種類の間隔の整数を返します。interval に指定できる有効な値は、以下のキーワードです。
  • FRAC_SECOND(*)
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

秒の小数部は、10 億分の 1 秒単位で指定します。たとえば、以下の SQL 文では、各従業員の名前と入社後の年数を返します。SELECT NAME, {fn TIMESTAMPDIFF(‘YEAR’, {fn CURDATE()}, HIRE_DATE)} FROM EMPLOYEES。いずれかのタイムスタンプ式が時刻値であり、interval が日、週、月、四半期、または年を示している場合、そのタイムスタンプの日付の部分が現在の日付に設定されてから、タイムスタンプの差が計算されます。いずれかのタイムスタンプ式が日付値であり、interval が秒の小数部、秒、分、または時間を示している場合、そのタイムスタンプの時刻の部分が 0 に設定されてから、タイムスタンプの差が計算されます。

+
WEEK(date_exp) date_exp の週のフィールドに基づいて、年の何週目であるかを 1 ~ 53 の範囲の整数値として返します。 +
YEAR(date_exp) date_exp の年のフィールドに基づく年を、整数値として返します。値の範囲はデータ ソース依存です。 +

(*)一部の DBMS では FRAC_SECOND を処理できません。