日付関数 - Amazon Simple Storage Service

日付関数

Amazon S3 Select および S3 Glacier Select では、次の日付関数がサポートされています。

DATE_ADD

日付部分、数量、およびタイムスタンプに従い、数量で日付部分を変更して、更新されたタイムスタンプを返します。

構文

DATE_ADD( date_part, quantity, timestamp )

パラメータ

date_part

変更する日付の部分を指定します。これには、次のいずれかを指定できます。

  • か月

  • 時間

数量

更新されたタイムスタンプ値に適用される値。数量が正の値である場合はタイムスタンプの date_part に加算され、負の値の場合は減算されます。

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_part の値 timestamp1date_part の値 timestamp2 より大きい場合に負の整数となります。戻り値は、date_part の値 timestamp1date_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( date_part FROM timestamp )

パラメータ

date_part

抽出するタイムスタンプの部分を指定します。これには、次のいずれかを指定できます。

  • か月

  • 時間

  • 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 ( 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

月の最初の文字 (注意: _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 or Z

時間単位のオフセット。オフセットが 0 の場合は「Z」

XX or XXXX +0700 or Z

時間および分単位のオフセット。オフセットが 0 の場合は「Z」

XXX or XXXXX +07:00 or Z

時間および分単位のオフセット。オフセットが 0 の場合は「Z」

x 7

オフセット (時間単位)

xx or xxxx 700

時間および分単位のオフセット

xxx or 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_STRING の逆オペレーションです。

構文

TO_TIMESTAMP ( string )

パラメータ

文字列

関数の対象となる文字列。

TO_TIMESTAMP('2007T') -- `2007T` TO_TIMESTAMP('2007-02-23T12:14:33.079-08:00') -- `2007-02-23T12:14:33.079-08:00`

UTCNOW

現在の時刻をタイムスタンプとして UTC で返します。

構文

UTCNOW()

パラメータ

なし

UTCNOW() -- 2017-10-13T16:02:11.123Z