日付/時刻関数 - Amazon Timestream

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

日付/時刻関数

注記

の Timestream LiveAnalytics は負の時間値をサポートしていません。負の時間になる操作はエラーになります。

の Timestream LiveAnalytics は、日付と時刻のUTCタイムゾーンを使用します。Timestream は、日付と時刻に対して次の関数をサポートしています。

全般と変換

の Timestream は、日付と時刻に対して次の一般的な関数と変換関数 LiveAnalytics をサポートしています。

関数 出力データ型 説明

current_date

date

で現在の日付を返しますUTC。括弧は使用されません。

SELECT current_date

結果の例: 2022-07-07

注記

これは予約キーワードでもあります。予約キーワードのリストについては、「」を参照してください予約済みキーワード

current_time

時間

で現在の時刻を返しますUTC。括弧は使用されません。

SELECT current_time

結果の例: 17:41:52.827000000

注記

これは予約キーワードでもあります。予約キーワードのリストについては、「」を参照してください予約済みキーワード

current_timestamp または now()

timestamp

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

SELECT current_timestamp

結果の例: 2022-07-07 17:42:32.939000000

注記

これは予約キーワードでもあります。予約キーワードのリストについては、「」を参照してください予約済みキーワード

current_timezone()

varchar

値は「」になりますUTC。

Timestream は、日付と時刻にUTCタイムゾーンを使用します。

SELECT current_timezone()

結果の例: UTC

date(varchar(x))、date(timestamp)

date

SELECT date(TIMESTAMP '2022-07-07 17:44:43.771000000')

結果の例: 2022-07-07

last_day_of_month(タイムスタンプ)、last_day_of_month(日付)

date

SELECT last_day_of_month(TIMESTAMP '2022-07-07 17:44:43.771000000')

結果の例: 2022-07-31

from_iso8601_timestamp(文字列)

timestamp

8601 ISO タイムスタンプを内部タイムスタンプ形式に解析します。

SELECT from_iso8601_timestamp('2022-06-17T08:04:05.000000000+05:00')

結果の例: 2022-06-17 03:04:05.000000000

from_iso8601_date(文字列)

date

8601 ISO 日付文字列を、指定された日付の 00:00:00 UTC の内部タイムスタンプ形式に解析します。

SELECT from_iso8601_date('2022-07-17')

結果の例: 2022-07-17

to_iso8601 (タイムスタンプ)、to_iso8601 (日付)

varchar

入力の ISO 8601 形式の文字列を返します。

SELECT to_iso8601(from_iso8601_date('2022-06-17'))

結果の例: 2022-06-17

from_milliseconds(bigint)

timestamp

SELECT from_milliseconds(1)

結果の例: 1970-01-01 00:00:00.001000000

from_nanoseconds(bigint)

timestamp

select from_nanoseconds(300000001)

結果の例: 1970-01-01 00:00:00.300000001

from_unixtime (ダブル)

timestamp

指定された unixtime に対応するタイムスタンプを返します。

SELECT from_unixtime(1)

結果の例: 1970-01-01 00:00:01.000000000

ローカルタイム

時間

で現在の時刻を返しますUTC。括弧は使用されません。

SELECT localtime

結果の例: 17:58:22.654000000

注記

これは予約キーワードでもあります。予約キーワードのリストについては、「」を参照してください予約済みキーワード

localtimestamp

timestamp

現在のタイムスタンプを で返しますUTC。括弧は使用されません。

SELECT localtimestamp

結果の例: 2022-07-07 17:59:04.368000000

注記

これは予約キーワードでもあります。予約キーワードのリストについては、「」を参照してください予約済みキーワード

to_milliseconds(間隔の日単位から秒単位)、to_milliseconds(タイムスタンプ)

bigint

SELECT to_milliseconds(INTERVAL '2' DAY + INTERVAL '3' HOUR)

結果の例: 183600000

SELECT to_milliseconds(TIMESTAMP '2022-06-17 17:44:43.771000000')

結果の例: 1655487883771

to_nanoseconds(間隔の日単位から秒単位)、to_nanoseconds(タイムスタンプ)

bigint

SELECT to_nanoseconds(INTERVAL '2' DAY + INTERVAL '3' HOUR)

結果の例: 183600000000000

SELECT to_nanoseconds(TIMESTAMP '2022-06-17 17:44:43.771000678')

結果の例: 1655487883771000678

to_unixtime(タイムスタンプ)

double

指定されたタイムスタンプの unixtime を返します。

SELECT to_unixtime('2022-06-17 17:44:43.771000000')

結果の例: 1.6554878837710001E9

date_trunc(単位、タイムスタンプ)

timestamp

単位に切り捨てられたタイムスタンプを返します。単位は [秒、分、時間、日、週、月、四半期、または年] のいずれかです。

SELECT date_trunc('minute', TIMESTAMP '2022-06-17 17:44:43.771000000')

結果の例: 2022-06-17 17:44:00.000000000

間隔と期間

の Timestream は、日付と時刻の次の間隔と期間関数 LiveAnalytics をサポートします。

関数 出力データ型 説明

date_add(unit、bigint、date)、date_add(unit、bigint、time)、date_add(varchar(x)、bigint、timestamp)

timestamp

単位が [秒、分、時間、日、週、月、四半期、年] のいずれかである単位の重みを追加します。

SELECT date_add('hour', 9, TIMESTAMP '2022-06-17 00:00:00')

結果の例: 2022-06-17 09:00:00.000000000

date_diff(単位、日付、日付) 、date_diff(単位、時刻、時刻) 、date_diff(単位、タイムスタンプ、タイムスタンプ)

bigint

差を返します。単位は [秒、分、時間、日、週、月、四半期、または年] のいずれかです。

SELECT date_diff('day', DATE '2020-03-01', DATE '2020-03-02')

結果の例: 1

parse_duration(文字列)

interval

入力文字列を解析してinterval同等の文字列を返します。

SELECT parse_duration('42.8ms')

結果の例: 0 00:00:00.042800000

SELECT typeof(parse_duration('42.8ms'))

結果の例: interval day to second

bin(タイムスタンプ、間隔)

timestamp

timestamp パラメータの整数値を、intervalパラメータの整数値の最も近い倍数に切り下げます。

この戻り値の意味は明確でない場合があります。最初にタイムスタンプ整数を間隔整数で除算し、次に結果を間隔整数で乗算して計算します。

タイムスタンプは、エポック (1970 年 1 月 POSIX 1 日) から経過した 1 秒の分数としてUTCポイントインタイムを指定することに注意してください。戻り値はカレンダー単位とほとんど一致しません。例えば、30 日間の間隔を指定すると、エポックからのすべての日が 30 日単位で分割され、暦月とは関係のない最新の 30 日単位の開始が返されます。

次に例を示します。

bin(TIMESTAMP '2022-06-17 10:15:20', 5m) ==> 2022-06-17 10:15:00.000000000 bin(TIMESTAMP '2022-06-17 10:15:20', 1d) ==> 2022-06-17 00:00:00.000000000 bin(TIMESTAMP '2022-06-17 10:15:20', 10day) ==> 2022-06-17 00:00:00.000000000 bin(TIMESTAMP '2022-06-17 10:15:20', 30day) ==> 2022-05-28 00:00:00.000000000

ago(間隔)

timestamp

current_timestamp に対応する値を返しますinterval

SELECT ago(1d)

結果の例: 2022-07-06 21:08:53.245000000

1h、1d、30m などの間隔リテラル

interval

間隔リテラルは、parse_duration(文字列) の便利な機能です。たとえば、1dparse_duration('1d') と同じです。これにより、間隔が使用されるすべての場所でリテラルを使用できます。例えば、ago(1d)bin(<timestamp>, 1m) です。

一部の間隔リテラルは、parse_duration の省略形として機能します。例えば、parse_duration('1day')1dayparse_duration('1d')、および は1d、それぞれ 型の 1 00:00:00.000000000 を返しますinterval day to second。に指定された形式でスペースを使用できますparse_duration。例えば、 parse_duration('1day')も返します00:00:00.000000000。ただし、 1 dayは間隔リテラルではありません。

に関連する単位interval day to secondは、ns、nanosecond、us、microsecond、ms、ミリ秒、s、second、m、minute、h、hour、d、day です。

もありますinterval year to month。間隔に関連する単位は、年初から月初までです。たとえば、 は SELECT 1yearを返します1-0SELECT 12monthも を返します1-0。 は SELECT 8monthを返します0-8

の単位quarterdate_truncや などの一部の関数でも使用できますがdate_addquarterは間隔リテラルの一部としては使用できません。

フォーマットと解析

の Timestream では、日付と時刻の次の書式設定と解析関数 LiveAnalytics がサポートされています。

関数 出力データ型 説明

date_format(タイムスタンプ、varchar(x))

varchar

この関数で使用される形式指定子の詳細については、https://trino.io/docs/current/functions/datetime.html「#mysql-date-functions」を参照してください。

SELECT date_format(TIMESTAMP '2019-10-20 10:20:20', '%Y-%m-%d %H:%i:%s')

結果の例: 2019-10-20 10:20:20

date_parse(varchar(x)、varchar(y))

timestamp

この関数で使用される形式指定子の詳細については、https://trino.io/docs/current/functions/datetime.html「#mysql-date-functions」を参照してください。

SELECT date_parse('2019-10-20 10:20:20', '%Y-%m-%d %H:%i:%s')

結果の例: 2019-10-20 10:20:20.000000000

format_datetime(タイムスタンプ、varchar(x))

varchar

この関数で使用される形式文字列の詳細については、http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html を参照してください。

SELECT format_datetime(parse_datetime('1968-01-13 12', 'yyyy-MM-dd HH'), 'yyyy-MM-dd HH')

結果の例: 1968-01-13 12

parse_datetime(varchar(x)、varchar(y))

timestamp

この関数で使用される形式文字列の詳細については、http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html を参照してください。

SELECT parse_datetime('2019-12-29 10:10 PST', 'uuuu-LL-dd HH:mm z')

結果の例: 2019-12-29 18:10:00.000000000

抽出

の Timestream は、日付と時刻に対して次の抽出関数 LiveAnalytics をサポートします。抽出関数は、残りの便利な関数の基礎です。

関数 出力データ型 説明

extract

bigint

タイムスタンプからフィールドを抽出します。ここで、フィールドは [YEAR、QUARTER、、MONTHWEEK、DAY、DAY_OF_MONTH、DAY_OF_WEEK、DOW、DAY_OF_YEAR、DOY、YEAR_OF_WEEK、YOW、、MINUTE、、または SECOND] HOURのいずれかです。

SELECT extract(YEAR FROM '2019-10-12 23:10:34.000000000')

結果の例: 2019

day (タイムスタンプ)、day (日付)、day (間隔の日~秒)

bigint

SELECT day('2019-10-12 23:10:34.000000000')

結果の例: 12

day_of_month(タイムスタンプ)、day_of_month(日付)、day_of_month(間隔日から秒)

bigint

SELECT day_of_month('2019-10-12 23:10:34.000000000')

結果の例: 12

day_of_week(タイムスタンプ)、day_of_week(日付)

bigint

SELECT day_of_week('2019-10-12 23:10:34.000000000')

結果の例: 6

day_of_year(タイムスタンプ)、day_of_year(日付)

bigint

SELECT day_of_year('2019-10-12 23:10:34.000000000')

結果の例: 285

dow(タイムスタンプ)、dow(日付)

bigint

day_of_week のエイリアス

doy(タイムスタンプ)、doy(日付)

bigint

day_of_year のエイリアス

hour (タイムスタンプ)、hour (時間)、hour (間隔の日単位から秒単位)

bigint

SELECT hour('2019-10-12 23:10:34.000000000')

結果の例: 23

ミリ秒 (タイムスタンプ)、ミリ秒 (時間)、ミリ秒 (間隔の日単位から秒単位)

bigint

SELECT millisecond('2019-10-12 23:10:34.000000000')

結果の例: 0

minute (タイムスタンプ)、minute (時間)、minute (間隔の日単位から秒単位)

bigint

SELECT minute('2019-10-12 23:10:34.000000000')

結果の例: 10

month(タイムスタンプ)、month(日付)、month(年々間隔)

bigint

SELECT month('2019-10-12 23:10:34.000000000')

結果の例: 10

nanosecond (タイムスタンプ)、nanosecond (時間)、nanosecond (間隔の日単位から秒単位)

bigint

SELECT nanosecond(current_timestamp)

結果の例: 162000000

quarter(タイムスタンプ)、 quarter(日付)

bigint

SELECT quarter('2019-10-12 23:10:34.000000000')

結果の例: 4

second (タイムスタンプ)、second (時間)、second (間隔の日単位から秒単位)

bigint

SELECT second('2019-10-12 23:10:34.000000000')

結果の例: 34

week(タイムスタンプ)、week(日付)

bigint

SELECT week('2019-10-12 23:10:34.000000000')

結果の例: 41

week_of_year(タイムスタンプ)、week_of_year(日付)

bigint

週のエイリアス

year(タイムスタンプ)、year(日付)、year(間隔の年から月)

bigint

SELECT year('2019-10-12 23:10:34.000000000')

結果の例: 2019

year_of_week(タイムスタンプ)、year_of_week(日付)

bigint

SELECT year_of_week('2019-10-12 23:10:34.000000000')

結果の例: 2019

yow(タイムスタンプ)、yow(日付)

bigint

year_of_week のエイリアス