日付と時刻の関数と演算子¶
日付と時刻の演算子¶
| 演算子 | 例 | 結果 | 
|---|---|---|
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
タイムゾーン変換¶
AT TIME ZONE 演算子はタイムスタンプのタイムゾーンを設定します
SELECT timestamp '2012-10-31 01:00 UTC';
2012-10-31 01:00:00.000 UTC
SELECT timestamp '2012-10-31 01:00 UTC' AT TIME ZONE 'America/Los_Angeles';
2012-10-30 18:00:00.000 America/Los_Angeles
日付と時刻の関数¶
- current_date -> date()¶
- クエリの開始時点での現在の日付を返します。 
- current_time -> time with time zone()¶
- クエリの開始時点での現在の時刻を返します。 
- current_timestamp -> timestamp with time zone()¶
- クエリの開始時点での現在のタイムスタンプを返します。 
- current_timezone() -> varchar()¶
- IANAによって定義された形式(例: - America/Los_Angeles)またはUTCからの固定オフセット(例:- +08:35)として現在のタイムゾーンを返します
- date(x) -> date()¶
- これは - CAST(x AS date)のエイリアスです。
- last_day_of_month(x) -> date()¶
- 月の最終日を返します。 
- from_iso8601_timestamp(string) -> timestamp with time zone()¶
- ISO 8601 形式の - 文字列を解析し、- タイムゾーン付きのタイムスタンプに変換します。
- from_iso8601_date(string) -> date()¶
- ISO 8601 形式の - 文字列を解析し、- 日付に変換します。
- from_unixtime(unixtime) -> timestamp()¶
- UNIX タイムスタンプ - unixtimeをタイムスタンプとして返します。
- from_unixtime(unixtime, string) -> タイムゾーン付きのタイムスタンプ()¶
- UNIX タイムスタンプ - unixtimeを、タイムゾーンに- 文字列を使用して、タイムゾーン付きタイムスタンプとして返します。
- from_unixtime(unixtime, hours, minutes) -> タイムゾーン付きのタイムスタンプ()¶
- UNIX タイムスタンプ - unixtimeを、タイムゾーンオフセットに- hoursと- minutesを使用して、タイムゾーン付きタイムスタンプとして返します。
- localtime -> time()¶
- クエリの開始時点での現在の時刻を返します。 
- localtimestamp -> timestamp()¶
- クエリの開始時点での現在のタイムスタンプを返します。 
- now() -> タイムゾーン付きのタイムスタンプ()¶
- これは - current_timestampのエイリアスです。
- to_iso8601(x) -> varchar()¶
- xを ISO 8601 文字列としてフォーマットします。- xは日付、タイムスタンプ、またはタイムゾーン付きのタイムスタンプにできます。
- to_milliseconds(interval) -> bigint()¶
- 日~秒の - intervalをミリ秒単位で返します。
- to_unixtime(timestamp) -> double()¶
- timestampを UNIX タイムスタンプとして返します。
注意
以下の SQL 標準関数は括弧を使用しません
- current_date
- current_time
- current_timestamp
- localtime
- localtimestamp
切り捨て関数¶
date_trunc 関数は以下の単位をサポートします
| 単位 | 切り捨てられた値の例 | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
上記の例では、入力としてタイムスタンプ 2001-08-22 03:04:05.321 を使用しています。
- date_trunc(unit, x) -> [入力と同じ]()¶
- xを- unitに切り捨てて返します。
間隔関数¶
このセクションの関数は、以下の間隔単位をサポートします
| 単位 | 説明 | 
|---|---|
| 
 | ミリ秒 | 
| 
 | 秒 | 
| 
 | 分 | 
| 
 | 時間 | 
| 
 | 日 | 
| 
 | 週 | 
| 
 | 月 | 
| 
 | 四半期 | 
| 
 | 年 | 
- date_add(unit, value, timestamp) -> [入力と同じ]()¶
- unit型の間隔- valueを- timestampに加算します。減算は負の値を使用することで実行できます。
- date_diff(unit, timestamp1, timestamp2) -> bigint()¶
- timestamp2 - timestamp1を- unitで表現した値を返します。
期間関数¶
parse_duration 関数は以下の単位をサポートします
| 単位 | 説明 | 
|---|---|
| 
 | ナノ秒 | 
| 
 | マイクロ秒 | 
| 
 | ミリ秒 | 
| 
 | 秒 | 
| 
 | 分 | 
| 
 | 時間 | 
| 
 | 日 | 
- parse_duration(string) -> interval()¶
- value unit形式の- 文字列を解析して間隔に変換します。ここで- valueは- unit値の小数です。- SELECT parse_duration('42.8ms'); -- 0 00:00:00.043 SELECT parse_duration('3.81 d'); -- 3 19:26:24.000 SELECT parse_duration('5m'); -- 0 00:05:00.000
MySQL 日付関数¶
このセクションの関数は、MySQL の date_parse および str_to_date 関数と互換性のある書式文字列を使用します。MySQL マニュアルに基づく次の表では、書式指定子について説明します。
| 指定子 | 説明 | 
|---|---|
| 
 | 曜日の省略名 (  | 
| 
 | 月の省略名 (  | 
| 
 | 月、数値 (  | 
| 
 | 英語の接尾辞付きの月の曜日 (  | 
| 
 | 月の曜日、数値 (  | 
| 
 | 月の曜日、数値 (  | 
| 
 | 秒の小数 (印刷の場合は 6 桁:  | 
| 
 | 時間 (  | 
| 
 | 時間 (  | 
| 
 | 時間 (  | 
| 
 | 分、数値 (  | 
| 
 | 年の日 (  | 
| 
 | 時間 (  | 
| 
 | 時間 (  | 
| 
 | 月の名前 (  | 
| 
 | 月、数値 (  | 
| 
 | 
 | 
| 
 | 時刻、12 時間形式 (  | 
| 
 | 秒 (  | 
| 
 | 秒 (  | 
| 
 | 時刻、24 時間形式 (  | 
| 
 | 週( | 
| 
 | 週( | 
| 
 | 週( | 
| 
 | 週( | 
| 
 | 曜日名( | 
| 
 | 曜日( | 
| 
 | 週の年、日曜が週の最初の日、数値、4桁; | 
| 
 | 週の年、月曜が週の最初の日、数値、4桁; | 
| 
 | 年、数値、4桁 | 
| 
 | 年、数値(2桁) [2] | 
| 
 | リテラルの | 
| 
 | 上記のリストにない任意の | 
警告
次の指定子は現在サポートされていません:%D %U %u %V %w %X
- date_format(timestamp, format) -> varchar()¶
- timestampを- formatを使用して文字列としてフォーマットします。
- date_parse(string, format) -> timestamp()¶
- stringを- formatを使用してタイムスタンプに解析します。
Java日付関数¶
このセクションの関数は、JodaTimeのDateTimeFormatパターン形式と互換性のある書式文字列を使用します。
- format_datetime(timestamp, format) -> varchar()¶
- timestampを- formatを使用して文字列としてフォーマットします。
- parse_datetime(string, format) -> timestamp with time zone()¶
- stringを- formatを使用してタイムゾーン付きのタイムスタンプに解析します。
抽出関数¶
extract関数は次のフィールドをサポートしています
| フィールド | 説明 | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
extract関数でサポートされている型は、抽出するフィールドによって異なります。ほとんどのフィールドは、すべての日付と時刻の型をサポートしています。
- extract(field FROM x) -> bigint()¶
- xから- fieldを返します。- 注意 - このSQL標準関数は、引数を指定するための特別な構文を使用します。 
便利な抽出関数¶
- day(x) -> bigint()¶
- xから月の日の値を返します。
- day_of_month(x) -> bigint()¶
- これは - day()のエイリアスです。
- day_of_week(x) -> bigint()¶
- xからISO曜日の値を返します。値は- 1(月曜日)から- 7(日曜日)の範囲です。
- day_of_year(x) -> bigint()¶
- xから年の日の値を返します。値は- 1から- 366の範囲です。
- dow(x) -> bigint()¶
- これは - day_of_week()のエイリアスです。
- doy(x) -> bigint()¶
- これは - day_of_year()のエイリアスです。
- hour(x) -> bigint()¶
- xから時間の値を返します。値は- 0から- 23の範囲です。
- millisecond(x) -> bigint()¶
- xから秒のミリ秒の値を返します。
- minute(x) -> bigint()¶
- xから分の値を返します。
- month(x) -> bigint()¶
- xから年の月の値を返します。
- quarter(x) -> bigint()¶
- xから年の四半期の値を返します。値は- 1から- 4の範囲です。
- second(x) -> bigint()¶
- xから分の秒の値を返します。
- timezone_hour(timestamp) -> bigint()¶
- timestampからタイムゾーンオフセットの時間の値を返します。
- timezone_minute(timestamp) -> bigint()¶
- timestampからタイムゾーンオフセットの分の値を返します。
- week_of_year(x) -> bigint()¶
- これは - week()のエイリアスです。
- year(x) -> bigint()¶
- xから年を返します。
- yow(x) -> bigint()¶
- これは - year_of_week()のエイリアスです。