Fungsi tanggal/waktu - Amazon Timestream

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Fungsi tanggal/waktu

catatan

Timestream for LiveAnalytics tidak mendukung nilai waktu negatif. Setiap operasi yang mengakibatkan waktu negatif menghasilkan kesalahan.

Timestream untuk LiveAnalytics menggunakan zona waktu UTC untuk tanggal dan waktu. Timestream mendukung fungsi berikut untuk tanggal dan waktu.

Umum dan konversi

Timestream untuk LiveAnalytics mendukung fungsi umum dan konversi berikut untuk tanggal dan waktu.

Fungsi Tipe data keluaran Deskripsi

current_date

date

Mengembalikan tanggal saat ini di UTC. Tidak ada tanda kurung yang digunakan.

SELECT current_date

Contoh hasil: 2022-07-07

catatan

Ini juga merupakan kata kunci yang dicadangkan. Untuk daftar kata kunci yang dicadangkan, lihatKata kunci terpesan.

current_time

Waktu

Mengembalikan waktu saat ini di UTC. Tidak ada tanda kurung yang digunakan.

SELECT current_time

Contoh hasil: 17:41:52.827000000

catatan

Ini juga merupakan kata kunci yang dicadangkan. Untuk daftar kata kunci yang dicadangkan, lihatKata kunci terpesan.

current_timestamp atau now ()

timestamp

Mengembalikan stempel waktu saat ini di UTC.

SELECT current_timestamp

Contoh hasil: 2022-07-07 17:42:32.939000000

catatan

Ini juga merupakan kata kunci yang dicadangkan. Untuk daftar kata kunci yang dicadangkan, lihatKata kunci terpesan.

current_timezone ()

varchar

Nilainya akan menjadi 'UTC.'

Timestream menggunakan zona waktu UTC untuk tanggal dan waktu.

SELECT current_timezone()

Contoh hasil: UTC

tanggal (varchar (x)), tanggal (stempel waktu)

date

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

Contoh hasil: 2022-07-07

last_day_of_month (stempel waktu), last_day_of_month (tanggal)

date

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

Contoh hasil: 2022-07-31

dari_iso8601_timestamp (string)

timestamp

Mem-parsing stempel waktu ISO 8601 ke dalam format stempel waktu internal.

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

Contoh hasil: 2022-06-17 03:04:05.000000000

dari_iso8601_date (string)

date

Mem-parsing string tanggal ISO 8601 ke dalam format stempel waktu internal untuk UTC 00:00:00 dari tanggal yang ditentukan.

SELECT from_iso8601_date('2022-07-17')

Contoh hasil: 2022-07-17

to_iso8601 (stempel waktu), to_iso8601 (tanggal)

varchar

Mengembalikan ISO 8601 string diformat untuk input.

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

Contoh hasil: 2022-06-17

dari_milidetik (bigint)

timestamp

SELECT from_milliseconds(1)

Contoh hasil: 1970-01-01 00:00:00.001000000

dari_nanodetik (bigint)

timestamp

select from_nanoseconds(300000001)

Contoh hasil: 1970-01-01 00:00:00.300000001

from_unixtime (ganda)

timestamp

Mengembalikan timestamp yang sesuai dengan unixtime yang disediakan.

SELECT from_unixtime(1)

Contoh hasil: 1970-01-01 00:00:01.000000000

waktu lokal

Waktu

Mengembalikan waktu saat ini di UTC. Tidak ada tanda kurung yang digunakan.

SELECT localtime

Contoh hasil: 17:58:22.654000000

catatan

Ini juga merupakan kata kunci yang dicadangkan. Untuk daftar kata kunci yang dicadangkan, lihatKata kunci terpesan.

localtimestamp

timestamp

Mengembalikan stempel waktu saat ini di UTC. Tidak ada tanda kurung yang digunakan.

SELECT localtimestamp

Contoh hasil: 2022-07-07 17:59:04.368000000

catatan

Ini juga merupakan kata kunci yang dicadangkan. Untuk daftar kata kunci yang dicadangkan, lihatKata kunci terpesan.

to_milliseconds (interval hari ke detik), to_milliseconds (stempel waktu)

bigint

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

Contoh hasil: 183600000

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

Contoh hasil: 1655487883771

to_nanoseconds (interval hari ke detik), to_nanoseconds (stempel waktu)

bigint

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

Contoh hasil: 183600000000000

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

Contoh hasil: 1655487883771000678

to_unixtime (stempel waktu)

double

Mengembalikan unixtime untuk stempel waktu yang disediakan.

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

Contoh hasil: 1.6554878837710001E9

date_trunc (satuan, stempel waktu)

timestamp

Mengembalikan stempel waktu terpotong ke unit, di mana unit adalah salah satu dari [detik, menit, jam, hari, minggu, bulan, kuartal, atau tahun].

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

Contoh hasil: 2022-06-17 17:44:00.000000000

Interval dan durasi

Timestream untuk LiveAnalytics mendukung fungsi interval dan durasi berikut untuk tanggal dan waktu.

Fungsi Tipe data keluaran Deskripsi

date_add (unit, bigint, tanggal), date_add (unit, bigint, waktu), date_add (varchar (x), bigint, stempel waktu)

timestamp

Menambahkan bigint unit, di mana unit adalah salah satu dari [detik, menit, jam, hari, minggu, bulan, kuartal, atau tahun].

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

Contoh hasil: 2022-06-17 09:00:00.000000000

date_diff (satuan, tanggal, tanggal), date_diff (satuan, waktu, waktu), date_diff (unit, stempel waktu, stempel waktu)

bigint

Mengembalikan perbedaan, di mana unit adalah salah satu dari [detik, menit, jam, hari, minggu, bulan, kuartal, atau tahun].

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

Contoh hasil: 1

parse_duration (string)

interval

Mem-parsing string input untuk mengembalikan yang interval setara.

SELECT parse_duration('42.8ms')

Contoh hasil: 0 00:00:00.042800000

SELECT typeof(parse_duration('42.8ms'))

Contoh hasil: interval day to second

bin (stempel waktu, interval)

timestamp

Membulatkan nilai integer timestamp parameter ke kelipatan terdekat dari nilai integer interval parameter.

Arti dari nilai pengembalian ini mungkin tidak jelas. Ini dihitung menggunakan aritmatika integer terlebih dahulu dengan membagi bilangan bulat timestamp dengan integer interval dan kemudian dengan mengalikan hasilnya dengan integer interval.

Mengingat bahwa stempel waktu menentukan titik waktu UTC sebagai sejumlah pecahan detik yang berlalu sejak zaman POSIX (1 Januari 1970), nilai pengembalian jarang akan sejajar dengan unit kalender. Misalnya, jika Anda menentukan interval 30 hari, semua hari sejak zaman dibagi menjadi kenaikan 30 hari, dan awal kenaikan 30 hari terbaru dikembalikan, yang tidak memiliki hubungan dengan bulan kalender.

Berikut ini adalah beberapa contohnya:

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

lalu (interval)

timestamp

Mengembalikan nilai yang sesuai dengan interval current_timestamp.

SELECT ago(1d)

Contoh hasil: 2022-07-06 21:08:53.245000000

interval literal seperti 1h, 1d, dan 30m

interval

Literal interval adalah kemudahan untuk parse_duration (string). Misalnya, 1d sama dengan parse_duration('1d'). Ini memungkinkan penggunaan literal di mana pun interval digunakan. Misalnya, ago(1d) dan bin(<timestamp>, 1m).

Beberapa literal interval bertindak sebagai singkatan untuk parse_duration. Misalnya,parse_duration('1day'),1day,parse_duration('1d'), dan 1d masing-masing kembali 1 00:00:00.000000000 di mana jenisnyainterval day to second. Ruang diperbolehkan dalam format yang disediakan untukparse_duration. Misalnya parse_duration('1day') juga kembali00:00:00.000000000. Tapi 1 day ini bukan interval literal.

Satuan yang terkait dengan interval day to second adalah ns, nanodetik, us, mikrodetik, ms, milidetik, s, detik, m, menit, h, jam, d, dan hari.

Ada jugainterval year to month. Satuan yang terkait dengan interval tahun ke bulan adalah y, tahun, dan bulan. Misalnya, SELECT 1year pengembalian1-0. SELECT 12monthjuga kembali1-0. SELECT 8monthkembali0-8.

Meskipun unit juga quarter tersedia untuk beberapa fungsi seperti date_trunc dandate_add, tidak quarter tersedia sebagai bagian dari interval literal.

Memformat dan mengurai

Timestream untuk LiveAnalytics mendukung fungsi pemformatan dan penguraian berikut untuk tanggal dan waktu.

Fungsi Tipe data keluaran Deskripsi

date_format (stempel waktu, varchar (x))

varchar

Untuk informasi selengkapnya tentang penentu format yang digunakan oleh fungsi ini, lihat # 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')

Contoh hasil: 2019-10-20 10:20:20

date_parse (varchar (x), varchar (y))

timestamp

Untuk informasi selengkapnya tentang penentu format yang digunakan oleh fungsi ini, lihat # 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')

Contoh hasil: 2019-10-20 10:20:20.000000000

format_datetime (stempel waktu, varchar (x))

varchar

Untuk informasi selengkapnya tentang string format yang digunakan oleh fungsi ini, lihat 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')

Contoh hasil: 1968-01-13 12

parse_datetime (varchar (x), varchar (y))

timestamp

Untuk informasi selengkapnya tentang string format yang digunakan oleh fungsi ini, lihat 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')

Contoh hasil: 2019-12-29 18:10:00.000000000

Ekstraksi

Timestream untuk LiveAnalytics mendukung fungsi ekstraksi berikut untuk tanggal dan waktu. Fungsi ekstrak adalah dasar untuk fungsi kenyamanan yang tersisa.

Fungsi Tipe data keluaran Deskripsi

sari

bigint

Mengekstrak bidang dari stempel waktu, di mana bidang adalah salah satu dari [TAHUN, KUARTAL, BULAN, MINGGU, HARI, DAY_OF_MONTH, DAY_OF_WEEK, DOW, DAY_OF_YEAR, DOY, YEAR_OF_WEEK, YOW, HOUR, MINUTE, atau SECOND].

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

Contoh hasil: 2019

hari (stempel waktu), hari (tanggal), hari (interval hari ke detik)

bigint

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

Contoh hasil: 12

day_of_month (stempel waktu), day_of_month (tanggal), day_of_month (interval hari ke detik)

bigint

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

Contoh hasil: 12

day_of_week (stempel waktu), day_of_week (tanggal)

bigint

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

Contoh hasil: 6

day_of_year (stempel waktu), day_of_year (tanggal)

bigint

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

Contoh hasil: 285

dow (stempel waktu), dow (tanggal)

bigint

Alias untuk day_of_week

doy (stempel waktu), doy (tanggal)

bigint

Alias untuk day_of_year

jam (stempel waktu), jam (waktu), jam (interval hari ke detik)

bigint

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

Contoh hasil: 23

milidetik (stempel waktu), milidetik (waktu), milidetik (interval hari ke detik)

bigint

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

Contoh hasil: 0

menit (timestamp), menit (waktu), menit (interval hari ke detik)

bigint

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

Contoh hasil: 10

bulan (stempel waktu), bulan (tanggal), bulan (interval tahun ke bulan)

bigint

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

Contoh hasil: 10

nanodetik (stempel waktu), nanodetik (waktu), nanodetik (interval hari ke detik)

bigint

SELECT nanosecond(current_timestamp)

Contoh hasil: 162000000

kuartal (stempel waktu), kuartal (tanggal)

bigint

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

Contoh hasil: 4

kedua (stempel waktu), detik (waktu), detik (interval hari ke detik)

bigint

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

Contoh hasil: 34

minggu (stempel waktu), minggu (tanggal)

bigint

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

Contoh hasil: 41

week_of_year (stempel waktu), week_of_year (tanggal)

bigint

Alias untuk minggu

tahun (stempel waktu), tahun (tanggal), tahun (interval tahun ke bulan)

bigint

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

Contoh hasil: 2019

year_of_week (stempel waktu), year_of_week (tanggal)

bigint

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

Contoh hasil: 2019

yow (stempel waktu), yow (tanggal)

bigint

Alias untuk year_of_week