Di MySQL, TO_SECONDS()
fungsi mengembalikan jumlah detik sejak tahun 0.
Fungsi ini jangan disamakan dengan TIME_TO_SECONDS()
fungsi, yang mengembalikan jumlah detik dalam nilai waktu tertentu yang diberikan sebagai argumen.
Sintaks
Sintaksnya seperti ini:
TO_SECONDS(expr)
Dimana expr
adalah nilai tanggal atau waktu (untuk dibandingkan dengan tahun 0).
Contoh 1 – Menggunakan Argumen 'tanggal'
Berikut ini contoh penggunaan argumen tanggal.
SELECT TO_SECONDS('2021-09-21');
Hasil:
+--------------------------+ | TO_SECONDS('2021-09-21') | +--------------------------+ | 63799401600 | +--------------------------+
Contoh 2 – Menggunakan Argumen 'datetime'
Berikut ini contoh menggunakan argumen datetime.
SELECT TO_SECONDS('2021-09-21 10:30:25');
Hasil:
+-----------------------------------+ | TO_SECONDS('2021-09-21 10:30:25') | +-----------------------------------+ | 63799439425 | +-----------------------------------+
Contoh 3 – Menggunakan Tanggal Saat Ini
Dalam contoh ini, saya meneruskan CURDATE()
berfungsi sebagai argumen untuk menggunakan tanggal saat ini.
SELECT TO_SECONDS(CURDATE()) AS 'Result';
Hasil:
+-------------+ | Result | +-------------+ | 63697968000 | +-------------+
Contoh 4 – Menggunakan Tanggal dan Waktu Saat Ini
Dalam contoh ini, saya meneruskan NOW()
berfungsi sebagai argumen untuk menggunakan tanggal dan waktu saat ini.
SELECT TO_SECONDS(NOW()) AS 'Result';
Hasil:
+-------------+ | Result | +-------------+ | 63698002698 | +-------------+
Dua Digit Tahun
MySQL memiliki aturan khusus untuk menangani tanggal dengan tahun dua digit. Tahun dua digit tidak jelas karena abadnya tidak diketahui. Pada dasarnya, aturan berikut berlaku:
- Nilai tahun dalam rentang
00-69
dikonversi ke2000-2069
. - Nilai tahun dalam rentang
70-99
dikonversi ke1970-1999
.
Untuk penjelasan lengkap, lihat dokumentasi MySQL tentang cara MySQL menangani tahun dua digit.
Berikut ini contoh untuk didemonstrasikan:
SELECT TO_SECONDS('69-10-07') AS '69 (2069)', TO_SECONDS('70-10-07') AS '70 (1970)';
Hasil:
+-------------+-------------+ | 69 (2069) | 70 (1970) | +-------------+-------------+ | 65315548800 | 62191324800 | +-------------+-------------+
Tanggal Singkat
Anda juga dapat menggunakan tanggal yang disingkat. Berikut ini contoh penggunaan nilai tanggal sebelumnya dalam bentuk singkatan.
SELECT TO_SECONDS('691007') AS '69 (2069)', TO_SECONDS('701007') AS '70 (1970)';
Hasil:
+-------------+-------------+ | 69 (2069) | 70 (1970) | +-------------+-------------+ | 65315548800 | 62191324800 | +-------------+-------------+
Tanggal Sebelumnya
Dokumentasi MySQL memperingatkan bahwa TO_SECONDS()
fungsi:
tidak dimaksudkan untuk digunakan dengan nilai-nilai yang mendahului munculnya kalender Gregorian (1582), karena tidak memperhitungkan hari-hari yang hilang ketika kalender diubah. Untuk tanggal sebelum 1582 (dan mungkin setahun kemudian di lokal lain), hasil dari fungsi ini tidak dapat diandalkan.