SQLite mendukung lima fungsi untuk bekerja dengan tanggal dan waktu. Ini adalah:
date()
time()
datetime()
julianday()
strftime()
Semua fungsi ini menerima string waktu sebagai argumen. Mereka juga menerima argumen lain untuk memodifikasi/memformat output.
strftime()
fungsi adalah fungsi yang paling serbaguna dari lima. Faktanya, fungsi ini dapat melakukan semua yang dapat dilakukan oleh empat lainnya.
Dengan kata lain, Anda dapat menggunakan strftime()
untuk semua persyaratan pemformatan tanggal dan waktu Anda. Empat fungsi lainnya hanya tersedia untuk kenyamanan.
Sintaks
Sintaks dari masing-masing fungsi adalah sebagai berikut:
date(timestring, modifier, modifier, ...)
time(timestring, modifier, modifier, ...)
datetime(timestring, modifier, modifier, ...)
julianday(timestring, modifier, modifier, ...)
strftime(format, timestring, modifier, modifier, ...)
Dalam empat fungsi pertama, argumen pertama adalah string waktu, dan argumen berikutnya adalah pengubah.
Dalam strftime()
fungsi argumen pertama adalah string format, diikuti oleh string waktu, dan pengubah apa pun.
Semua string waktu dan pengubah yang valid tercantum di dekat bagian bawah artikel ini.
Tapi pertama-tama, mari kita lihat beberapa contoh singkat dari masing-masing fungsi ini.
Fungsi tanggal()
Anda dapat menggunakan date()
fungsi dengan satu argumen, atau dengan beberapa argumen.
Berikut ini contoh dengan hanya satu argumen:
SELECT date('now');
Hasil:
2020-04-23
Berikut ini contoh yang menggunakan pengubah:
SELECT date('now', 'localtime');
Hasil:
2020-04-24
Dalam hal ini saya menggunakan localtime
pengubah. Pengubah ini mengasumsikan bahwa string waktu dalam Universal Coordinated Time (UTC) dan menyesuaikan string waktu sehingga menampilkan waktu lokal.
Fungsi waktu()
time()
fungsinya mirip dengan date()
fungsi, kecuali ia menampilkan waktu alih-alih tanggal.
Ini contohnya:
SELECT time('now');
Hasil:
00:02:05
Dan ini dia dengan localtime
pengubah:
SELECT time('now', 'localtime');
Hasil:
10:02:09
Fungsi datetime()
SQLite datetime()
function menggabungkan dua fungsi sebelumnya, dalam artian menampilkan tanggal dan waktu.
Ini contohnya:
SELECT datetime('now');
Hasil:
"2020-04-24 00:04:13"
Dan ini dia dengan localtime
pengubah:
SELECT datetime('now', 'localtime');
Hasil:
"2020-04-24 10:04:46"
Fungsi julianday()
julianday()
fungsi mengembalikan hitungan hari terus menerus sejak awal Periode Julian, yaitu Senin, 1 Januari 4713 SM, kalender Julian proleptik (24 November 4714 SM, dalam kalender Gregorian proleptik).
Begini tampilannya menggunakan now
sebagai string waktu:
SELECT julianday('now');
Hasil:
2458963.50964815
Dan ini dia menggunakan localtime
pengubah:
SELECT julianday('now', 'localtime');
Hasil:
2458963.92637685
Fungsi strftime()
Seperti disebutkan, strftime()
fungsi dapat digunakan untuk menampilkan nilai tanggal dan waktu dalam format apa pun yang tersedia di fungsi sebelumnya.
Fungsi ini memungkinkan Anda untuk sangat spesifik dengan bagaimana nilai tanggal/waktu Anda diformat. Ini memungkinkan Anda untuk memberikan format yang tepat yang Anda inginkan untuk disajikan.
Sintaks fungsi ini seperti ini:
strftime(format, timestring, modifier, modifier, ...)
Perhatikan bahwa argumen pertama adalah format
. Di sinilah Anda memberikan format yang Anda inginkan untuk menghasilkan string waktu.
Format string untuk strftime()
dapat terdiri dari salah satu substitusi berikut:
%d | Hari dalam sebulan:00 |
%f | Pecahan detik:SS.SSS |
%H | Jam:00-24 |
%j | Hari dalam setahun:001-366 |
%J | Nomor hari Julian |
%m | Bulan:01-12 |
%M | Menit:00-59 |
%s | Detik sejak 1970-01-01 |
%S | Detik:00-59 |
%w | Hari dalam seminggu 0-6 dengan Minggu==0 |
%W | Minggu dalam setahun:00-53 |
%Y | Tahun:0000-9999 |
%% | % |
Ini contohnya:
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now');
Hasil:
"2020-04-24 00:43:51"
Dalam hal ini kita mendapatkan hasil yang sama seperti saat menggunakan datetime()
fungsi.
Ini dia dengan localtime
pengubah:
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime');
Hasil:
"2020-04-24 10:45:27"
Sekali lagi, hasil yang sama dengan datetime()
. Bedanya, strftime()
memungkinkan kita untuk secara eksplisit menentukan format output.
Misalnya:
SELECT strftime('%d/%m/%Y %H:%M:%S', 'now', 'localtime');
SELECT strftime('%m/%d/%Y (%H:%M:%S)', 'now', 'localtime');
SELECT strftime('%H:%M:%S on %d/%m/%Y', 'now', 'localtime');
Hasil:
"24/04/2020 10:49:41" "04/24/2020 (10:52:24)" "10:51:13 on 24/04/2020"
Format String Waktu yang Valid
Argumen string waktu di semua fungsi tanggal/waktu dapat diberikan dalam salah satu format berikut:
- YYYY-MM-DD
- YYYY-MM-DD HH:MM
- YYYY-MM-DD HH:MM:SS
- YYYY-MM-DD HH:MM:SS.SSS
- YYYY-MM-DDTHH:MM
- YYYY-MM-DDTHH:MM:SS
- YYYY-MM-DDTHH:MM:SS.SSS
- HH:MM
- HH:MM:SS
- HH:MM:SS.SSS
- sekarang
- DDDDDDDDDD
Pengubah yang Valid
Anda dapat menggunakan salah satu pengubah berikut dengan fungsi tanggal/waktu:
- NNN hari
- Jam NNN
- NNN menit
- NNN.NNNN detik
- NNN bulan
- NNN tahun
- awal bulan
- awal tahun
- awal hari
- hari kerja N
- unixepoch
- waktu setempat
- utc
N
mengacu pada nomor yang ditambahkan ke tanggal, berdasarkan unit yang ditentukan.
Misalnya:
SELECT
date('now'),
date('now', '3 days');
Hasil:
date('now') date('now', '3 days') ----------- --------------------- 2020-04-24 2020-04-27
Ini dia yang menggunakan start of month
sebagai pengubah:
SELECT
date('now'),
date('now', 'start of month');
Hasil:
date('now') date('now', 'start of month') ----------- ----------------------------- 2020-04-24 2020-04-01