日付と時刻の関数と演算子¶
日付と時刻の演算子¶
演算子 |
例 |
結果 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
タイムゾーン変換¶
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()
のエイリアスです。