Di MariaDB, FROM_UNIXTIME()
adalah fungsi tanggal dan waktu bawaan yang mengembalikan nilai waktu-tanggal berdasarkan stempel waktu unix yang diberikan.
Anda meneruskan cap waktu unix ke fungsi saat Anda memanggilnya.
Hasilnya dikembalikan dalam 'YYYY-MM-DD HH:MM:SS'
atau YYYYMMDDHHMMSS.uuuuuu
format, tergantung pada apakah fungsi tersebut digunakan dalam konteks string atau numerik.
Nilainya dinyatakan dalam zona waktu saat ini.
Sintaks
Fungsi tersebut dapat digunakan dengan cara berikut:
FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)
Dimana unix_timestamp
adalah cap waktu unix, dan format
adalah string format opsional untuk memformat hasil.
Contoh
Ini contohnya:
SELECT FROM_UNIXTIME(1721428321);
Hasil:
+---------------------------+ | FROM_UNIXTIME(1721428321) | +---------------------------+ | 2024-07-20 08:32:01 | +---------------------------+
Mikrodetik
Berikut ini contoh yang menyertakan mikrodetik:
SELECT FROM_UNIXTIME(1721428321.123456);
Hasil:
+----------------------------------+ | FROM_UNIXTIME(1721428321.123456) | +----------------------------------+ | 2024-07-20 08:32:01.123456 | +----------------------------------+
Konteks Numerik
Saat menggunakan FROM_UNIXTIME()
dalam konteks numerik, hasilnya dikembalikan dalam YYYYMMDDHHMMSS.uuuuuu
format:
SELECT FROM_UNIXTIME(1721428321.123456) + 0;
Hasil:
+--------------------------------------+ | FROM_UNIXTIME(1721428321.123456) + 0 | +--------------------------------------+ | 20240720083201.123456 | +--------------------------------------+
Format Hasil
Berikut ini contoh meneruskan string format untuk memformat hasilnya:
SELECT FROM_UNIXTIME(1721428321, '%W, %D %M %Y');
Hasil:
+-------------------------------------------+ | FROM_UNIXTIME(1721428321, '%W, %D %M %Y') | +-------------------------------------------+ | Saturday, 20th July 2024 | +-------------------------------------------+
Lihat MariaDB Date Format Strings untuk daftar format string yang dapat digunakan dengan FROM_UNIXTIME()
fungsi.
Batas Stempel Waktu
Stempel waktu di MariaDB memiliki nilai maksimum 2147483647
. Ini karena batasan 32-bit yang mendasarinya. Menggunakan fungsi pada stempel waktu di luar ini menghasilkan null
dikembalikan.
Berikut adalah contoh yang menunjukkan batasan ini:
SELECT
FROM_UNIXTIME(2147483647),
FROM_UNIXTIME(2147483648);
Hasil:
+---------------------------+---------------------------+ | FROM_UNIXTIME(2147483647) | FROM_UNIXTIME(2147483648) | +---------------------------+---------------------------+ | 2038-01-19 13:14:07 | NULL | +---------------------------+---------------------------+
Zona waktu
Hasil dari FROM_UNIXTIME()
dinyatakan dalam zona waktu saat ini.
Contoh berikut menggunakan stempel waktu unix yang sama dengan zona waktu yang berbeda:
SET time_zone = 'America/New_York';
SELECT FROM_UNIXTIME(2147483647);
Hasil:
+---------------------------+ | FROM_UNIXTIME(2147483647) | +---------------------------+ | 2038-01-18 22:14:07 | +---------------------------+
Beralih ke zona waktu lain dan jalankan lagi:
SET time_zone = 'Africa/Abidjan';
SELECT FROM_UNIXTIME(2147483647);
Hasil:
+---------------------------+ | FROM_UNIXTIME(2147483647) | +---------------------------+ | 2038-01-19 03:14:07 | +---------------------------+
Stempel Waktu Unix Saat Ini
Berikut adalah contoh yang menggunakan UNIX_TIMESTAMP()
berfungsi untuk mengembalikan stempel waktu unix saat ini:
SELECT
UNIX_TIMESTAMP(),
FROM_UNIXTIME(UNIX_TIMESTAMP());
Hasil:
+------------------+---------------------------------+ | UNIX_TIMESTAMP() | FROM_UNIXTIME(UNIX_TIMESTAMP()) | +------------------+---------------------------------+ | 1621734047 | 2021-05-23 11:40:47 | +------------------+---------------------------------+
Argumen Tidak Ada
Memanggil FROM_UNIXTIME()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:
SELECT FROM_UNIXTIME();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'
Dan contoh lain:
SELECT FROM_UNIXTIME( 1, 2, 3 );
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'