日付関数
重要
新規のお客様への Amazon S3 Select の提供は終了しました。Amazon S3 Select をご利用の既存のお客様は、今後も通常どおり使用できます。詳細はこちら
Amazon S3 Select では、以下の日付関数がサポートされています。
DATE_ADD
日付部分、数量、タイムスタンプを指定すると、DATE_ADD
は日付部分を数量に応じて変更し、更新されたタイムスタンプを返します。
構文
DATE_ADD(
date_part
,quantity
,timestamp
)
パラメータ
date_part
-
変更する日付の部分を指定します。これには、次のいずれかを指定できます。
-
年
-
か月
-
日
-
時間
-
分
-
秒
-
-
quantity
-
更新されたタイムスタンプ値に適用する値。
が正の値である場合は、タイムスタンプの date_part に加算し、負の値の場合は減算します。quantity
-
timestamp
-
関数の対象となるタイムスタンプ。
例
DATE_ADD(year, 5, `2010-01-01T`) -- 2015-01-01 (equivalent to 2015-01-01T) DATE_ADD(month, 1, `2010T`) -- 2010-02T (result will add precision as necessary) DATE_ADD(month, 13, `2010T`) -- 2011-02T DATE_ADD(day, -1, `2017-01-10T`) -- 2017-01-09 (equivalent to 2017-01-09T) DATE_ADD(hour, 1, `2017T`) -- 2017-01-01T01:00-00:00 DATE_ADD(hour, 1, `2017-01-02T03:04Z`) -- 2017-01-02T04:04Z DATE_ADD(minute, 1, `2017-01-02T03:04:05.006Z`) -- 2017-01-02T03:05:05.006Z DATE_ADD(second, 1, `2017-01-02T03:04:05.006Z`) -- 2017-01-02T03:04:06.006Z
DATE_DIFF
日付部分と 2 つの有効なタイムスタンプを指定すると、DATE_DIFF
は日付部分の差を返します。戻り値は、
の値 date_part
が timestamp1
の値 date_part
より大きい場合に負の整数となります。戻り値は、timestamp2
の値 date_part
が timestamp1
の値 date_part
より少ない場合に正の整数となります。timestamp2
構文
DATE_DIFF(
date_part
,timestamp1
,timestamp2
)
パラメータ
-
date_part
-
比較するタイムスタンプの部分を指定します。
date_part
の定義については、「DATE_ADD」を参照してください。 -
timestamp1
-
比較する最初のタイムスタンプ。
-
timestamp2
-
比較する 2 番目のタイムスタンプ。
例
DATE_DIFF(year, `2010-01-01T`, `2011-01-01T`) -- 1 DATE_DIFF(year, `2010T`, `2010-05T`) -- 4 (2010T is equivalent to 2010-01-01T00:00:00.000Z) DATE_DIFF(month, `2010T`, `2011T`) -- 12 DATE_DIFF(month, `2011T`, `2010T`) -- -12 DATE_DIFF(day, `2010-01-01T23:00`, `2010-01-02T01:00`) -- 0 (need to be at least 24h apart to be 1 day apart)
EXTRACT
日付部分とタイムスタンプを指定すると、EXTRACT
はタイムスタンプの日付部分の値を返します。
構文
EXTRACT(
date_part
FROMtimestamp
)
パラメータ
-
date_part
-
抽出するタイムスタンプの部分を指定します。これには、次のいずれかを指定できます。
-
YEAR
-
MONTH
-
DAY
-
HOUR
-
MINUTE
-
SECOND
-
TIMEZONE_HOUR
-
TIMEZONE_MINUTE
-
-
timestamp
-
関数の対象となるタイムスタンプ。
例
EXTRACT(YEAR FROM `2010-01-01T`) -- 2010 EXTRACT(MONTH FROM `2010T`) -- 1 (equivalent to 2010-01-01T00:00:00.000Z) EXTRACT(MONTH FROM `2010-10T`) -- 10 EXTRACT(HOUR FROM `2017-01-02T03:04:05+07:08`) -- 3 EXTRACT(MINUTE FROM `2017-01-02T03:04:05+07:08`) -- 4 EXTRACT(TIMEZONE_HOUR FROM `2017-01-02T03:04:05+07:08`) -- 7 EXTRACT(TIMEZONE_MINUTE FROM `2017-01-02T03:04:05+07:08`) -- 8
TO_STRING
タイムスタンプと形式パターンを指定すると、TO_STRING
は、指定された形式でタイムスタンプの文字列表現を返します。
構文
TO_STRING (
timestamp
time_format_pattern
)
パラメータ
-
timestamp
-
関数の対象となるタイムスタンプ。
-
time_format_pattern
-
次の特殊文字の解釈を持つ文字列。
[形式]
例
説明
yy
69
2 桁の年
y
1969
4 桁の年
yyyy
1969
ゼロ詰めの 4 桁の年
M
1
月
MM
01
ゼロ詰めの月
MMM
Jan
月と年の省略名
MMMM
January
完全な年の名前
MMMMM
J
月の最初の文字 (注意: この形式は
TO_TIMESTAMP
関数では使用できません)d
2
日 (1~31)
dd
02
ゼロ詰めの日 (01~31)
a
AM
午前または午後
h
3
時間 (1~12)
hh
03
ゼロ詰めの時間 (01~12)
H
3
時間 (0~23)
HH
03
ゼロ詰めの時間 (00~23)
m
4
分 (0~59)
mm
04
ゼロ詰めの分 (00~59)
s
5
秒 (0~59)
ss
05
ゼロ詰めの秒 (00~59)
S
0
1 秒の端数 (精度: 0.1、範囲: 0.0~0.9)
SS
6
1 秒の端数 (精度: 0.01、範囲: 0.0~0.99)
SSS
60
1 秒の端数 (精度: 0.001、範囲: 0.0~0.999)
…
…
…
SSSSSSSSS
60000000
1 秒の端数 (最大精度: 1 ナノ秒、範囲: 0.0~0.999999999)
n
60000000
ナノ秒
X
+07
、またはZ
時間単位のオフセット。オフセットが 0 の場合は
Z
XX
、、またはXXXX
+0700
、、またはZ
時間および分単位のオフセット。オフセットが 0 の場合は「Z」
XXX
、、またはXXXXX
+07:00
、、またはZ
時間および分単位のオフセット。オフセットが 0 の場合は
Z
x
7
オフセット (時間単位)
xx
、またはxxxx
700
時間および分単位のオフセット
xxx
、またはxxxxx
+07:00
時間および分単位のオフセット
例
TO_STRING(`1969-07-20T20:18Z`, 'MMMM d, y') -- "July 20, 1969" TO_STRING(`1969-07-20T20:18Z`, 'MMM d, yyyy') -- "Jul 20, 1969" TO_STRING(`1969-07-20T20:18Z`, 'M-d-yy') -- "7-20-69" TO_STRING(`1969-07-20T20:18Z`, 'MM-d-y') -- "07-20-1969" TO_STRING(`1969-07-20T20:18Z`, 'MMMM d, y h:m a') -- "July 20, 1969 8:18 PM" TO_STRING(`1969-07-20T20:18Z`, 'y-MM-dd''T''H:m:ssX') -- "1969-07-20T20:18:00Z" TO_STRING(`1969-07-20T20:18+08:00Z`, 'y-MM-dd''T''H:m:ssX') -- "1969-07-20T20:18:00Z" TO_STRING(`1969-07-20T20:18+08:00`, 'y-MM-dd''T''H:m:ssXXXX') -- "1969-07-20T20:18:00+0800" TO_STRING(`1969-07-20T20:18+08:00`, 'y-MM-dd''T''H:m:ssXXXXX') -- "1969-07-20T20:18:00+08:00"
TO_TIMESTAMP
文字列を指定すると、TO_TIMESTAMP
は、それをタイムスタンプに変換します。TO_TIMESTAMP
は TO_STRING
の逆演算です。
構文
TO_TIMESTAMP (
string
)
パラメータ
-
string
-
関数の対象となる文字列。
例
TO_TIMESTAMP('2007T') -- `2007T` TO_TIMESTAMP('2007-02-23T12:14:33.079-08:00') -- `2007-02-23T12:14:33.079-08:00`
UTCNOW
UTCNOW
は、現在の時刻をタイムスタンプとして UTC で返します。
構文
UTCNOW()
パラメータ
UTCNOW
はパラメータを受け取りません。
例
UTCNOW() -- 2017-10-13T16:02:11.123Z