Di MariaDB, UNIX_TIMESTAMP()
adalah fungsi tanggal dan waktu bawaan yang mengembalikan stempel waktu Unix, berdasarkan argumennya (atau kurangnya argumen).
Ini bekerja seperti ini:
- Saat dipanggil tanpa argumen, ia mengembalikan stempel waktu Unix (detik sejak '1970-01-01 00:00:00' UTC) sebagai bilangan bulat yang tidak ditandatangani.
- Saat dipanggil dengan argumen, ia mengembalikan nilai argumen sebagai detik sejak '1970-01-01 00:00:00' UTC.
Fungsi kebalikan dari UNIX_TIMESTAMP()
adalah FROM_UNIXTIME()
.
Sintaks
UNIX_TIMESTAMP()
dapat dipanggil dengan dua cara berikut:
UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)
Dimana date
adalah string tanggal, string datetime, cap waktu, atau angka dalam format YYMMDD
atau YYYYMMDD
.
Contoh – Tanpa Argumen
Berikut ini contoh pemanggilan UNIX_TIMESTAMP()
tanpa argumen:
SELECT UNIX_TIMESTAMP();
Hasil:
+------------------+ | UNIX_TIMESTAMP() | +------------------+ | 1622502492 | +------------------+
Ini memberitahu kita bahwa ketika saya menjalankan pernyataan itu, 1622502492 detik telah berlalu sejak 1970-01-01 00:00:00.
Contoh – Dengan Argumen
Berikut ini contoh dengan argumen:
SELECT UNIX_TIMESTAMP('1970-01-02');
Hasil:
+------------------------------+ | UNIX_TIMESTAMP('1970-01-02') | +------------------------------+ | 50400 | +------------------------------+
Dalam contoh berikut, saya memanggil UNIX_TIMESTAMP()
dua kali; sekali tanpa argumen, dan sekali dengan NOW()
sebagai argumen.
SELECT
UNIX_TIMESTAMP(),
UNIX_TIMESTAMP(NOW());
Hasil:
+------------------+-----------------------+ | UNIX_TIMESTAMP() | UNIX_TIMESTAMP(NOW()) | +------------------+-----------------------+ | 1622502678 | 1622502678 | +------------------+-----------------------+
String Tanggal-waktu
Dalam contoh di atas, NOW()
mengembalikan nilai datetime.
Dalam contoh ini, saya secara eksplisit memberikan string datetime:
SELECT UNIX_TIMESTAMP('2020-10-30 10:23:47');
Hasil:
+---------------------------------------+ | UNIX_TIMESTAMP('2020-10-30 10:23:47') | +---------------------------------------+ | 1604017427 | +---------------------------------------+
Mikrodetik
UNIX_TIMESTAMP()
mendukung mikrodetik:
SELECT UNIX_TIMESTAMP('2020-10-30 10:23:47.123456');
Hasil:
+----------------------------------------------+ | UNIX_TIMESTAMP('2020-10-30 10:23:47.123456') | +----------------------------------------------+ | 1604017427.123456 | +----------------------------------------------+
Tanggal Numerik
Tanggal numerik didukung:
SELECT UNIX_TIMESTAMP(20201030);
Hasil:
+--------------------------+ | UNIX_TIMESTAMP(20201030) | +--------------------------+ | 1603980000 | +--------------------------+
Argumen Tidak Valid
Saat melewati argumen yang tidak valid, UNIX_TIMESTAMP()
mengembalikan null
dengan peringatan:
SELECT UNIX_TIMESTAMP('Homer');
Hasil:
+-------------------------+ | UNIX_TIMESTAMP('Homer') | +-------------------------+ | NULL | +-------------------------+ 1 row in set, 1 warning (0.001 sec)
Periksa peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Terlalu Banyak Argumen
Memanggil UNIX_TIMESTAMP()
dengan terlalu banyak argumen menghasilkan kesalahan:
SELECT UNIX_TIMESTAMP('1970-01-02', '1970-01-03');
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNIX_TIMESTAMP'