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'