SQLite strftime()
fungsi memungkinkan Anda untuk mengembalikan nilai tanggal dan waktu dalam format tertentu.
Nilai tanggal/waktu aktual yang dikembalikan didasarkan pada string waktu yang Anda berikan sebagai argumen saat Anda memanggil fungsi, serta pengubah apa pun yang Anda sertakan (sebagai argumen opsional). Pengubah memungkinkan Anda untuk mengubah tanggal, seperti menambahkan jumlah hari, menyetelnya ke waktu lokal, dll
Sintaks
Sintaksnya seperti ini:
strftime(format, timestring, modifier, modifier, ...)
format
argumen dapat berupa kombinasi apa pun dari substitusi string format yang valid untuk strftime()
fungsi.
timestring
argumen harus berupa string waktu yang valid.
modifier
argumen adalah opsional. Anda dapat memberikan satu atau lebih pengubah. Jika Anda memberikan pengubah, itu harus pengubah yang valid.
Contoh
Berikut ini contoh untuk didemonstrasikan.
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now');
Hasil:
2020-04-29 01:29:54
now
string waktu diubah menjadi tanggal dan waktu saat ini, berdasarkan format string yang disediakan.
Dalam hal ini, string format saya mengembalikan hasil yang persis sama dengan datetime('now')
akan kembali.
Tambahkan Pengubah
Kita dapat memodifikasi hasil sebelumnya dengan menggunakan pengubah. Ini contohnya.
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', '+2 hours');
Hasil:
2020-04-29 03:31:50
Dalam hal ini saya menambahkan dua jam ke waktu.
Beberapa Pengubah
Anda dapat menambahkan beberapa pengubah. Berikut adalah contoh menambahkan pengubah lain ke contoh sebelumnya.
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', '+2 hours', 'localtime');
Hasil:
2020-04-29 13:33:22
Dalam kasus saya, localtime
pengubah menghasilkan waktu yang dimajukan.
Ini karena localtime
pengubah mengasumsikan string waktu yang disediakan dalam Universal Coordinated Time (UTC). Ini kemudian menyesuaikan string waktu sehingga menampilkan waktu lokal.
Anda mungkin mendapatkan hasil yang berbeda, tergantung pada waktu setempat Anda.
Ini dia lagi membandingkan waktu lokal asli dengan hasil modifikasi:
SELECT
strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime') AS "Local",
strftime('%Y-%m-%d %H:%M:%S', 'now', '+2 hours', 'localtime') AS "Modified";
Hasil:
Local Modified ------------------- ------------------- 2020-04-29 11:34:57 2020-04-29 13:34:57
Waktu Unix/Epoch
Anda dapat menggunakan %s
format string (huruf kecil) untuk menghitung waktu Epoch.
SELECT strftime('%s', 'now');
Hasil:
1588124826
Waktu Epoch (juga dikenal sebagai waktu Epoch, waktu POSIX, detik sejak Epoch, atau waktu Epoch UNIX) adalah jumlah detik sejak 1970-01-01.
Waktu Unix banyak digunakan dalam sistem operasi dan format file.
Hari Julian
Anda dapat menggunakan %J
untuk mengembalikan Hari Julian.
Hari Julian adalah jumlah hari sejak tengah hari di Greenwich pada tanggal 24 November 4714 SM. (menggunakan kalender Gregorian Proleptik).
Jika menggunakan kalender Julian proleptik, ini adalah Senin, 1 Januari 4713 SM.
Hari Julian biasanya digunakan oleh para astronom, perangkat lunak, dll untuk menghitung hari yang telah berlalu antara dua peristiwa.
Berikut cara mengembalikan Julian Day dengan strftime()
fungsi.
SELECT strftime('%J', 'now');
Hasil:
2458968.575441667
Cara lain untuk melakukan ini di SQLite adalah dengan menggunakan julianday()
fungsi.
Rentang Tanggal
Seperti semua fungsi tanggal dan waktu SQLite, strftime()
hanya berfungsi untuk tanggal antara 0000-01-01 00:00:00 dan 9999-12-31 23:59:59 (nomor hari julian 1721059.5 hingga 5373484.5).
Untuk tanggal di luar rentang tersebut, hasilnya tidak ditentukan.