SQLite memiliki date()
fungsi yang memungkinkan Anda mengembalikan nilai tanggal berdasarkan string waktu dan pengubah apa pun.
Ini mengembalikan tanggal dalam format ini:YYYY-MM-DD
Untuk menggunakan fungsi ini, Anda perlu menyediakan string waktu, ditambah pengubah (opsional). Pengubah memungkinkan Anda untuk mengubah tanggal, seperti menambahkan jumlah hari, menyetelnya ke waktu lokal, dll
Sintaks
Sintaks dari date()
fungsinya seperti ini:
date(timestring, modifier, modifier, ...)
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 adalah contoh untuk mendemonstrasikan date()
fungsi yang digunakan dengan satu argumen.
SELECT date('now');
Hasil:
2020-04-27
now
string waktu diubah menjadi tanggal dan waktu saat ini. Mengingat saya menggunakan date()
fungsi, hanya tanggal yang dikembalikan.
Tambahkan Pengubah
Kita dapat memodifikasi hasil sebelumnya dengan menggunakan pengubah. Ini contohnya.
SELECT date('now', '+6 months');
Hasil:
2020-10-27
Dalam hal ini, saya menambahkan enam bulan ke tanggal.
Beberapa Pengubah
Seperti yang disebutkan, Anda dapat menambahkan satu atau lebih pengubah. Berikut adalah contoh menambahkan pengubah lain ke contoh sebelumnya.
SELECT date('now', '+6 months', 'localtime');
Hasil:
2020-10-28
Dalam kasus saya, localtime
pengubah menghasilkan hari yang ditambahkan ke tanggal.
Alasan dilakukannya ini adalah karena localtime
pengubah mengasumsikan string waktu yang disediakan dalam Universal Coordinated Time (UTC). Ini kemudian menyesuaikan string waktu sehingga menampilkan waktu lokal.
Oleh karena itu, Anda mungkin mendapatkan hasil yang berbeda, tergantung pada waktu setempat Anda.
String Literal sebagai Time String
Contoh di atas menggunakan now
sebagai string waktu, tetapi Anda dapat memberikan string waktu yang valid.
Berikut beberapa contoh lainnya.
SELECT date('2020-04-27 23:58:57');
Hasil:
2020-04-27
Dalam hal ini hanya menghapus bagian waktu dari tanggal.
Ini dia lagi, tetapi dengan beberapa pengubah.
SELECT date('2020-04-27 23:58:57', 'start of year', '+6 months');
Hasil:
2020-07-01
Dalam hal ini saya ingin mendapatkan tanggal yaitu 6 bulan dari awal tahun dari tanggal yang diberikan.
Berikut adalah contoh yang menggunakan Hari Julian sebagai string waktu.
SELECT date('2458967.49737293');
Hasil:
2020-04-27
tanggal() vs strftime()
date()
fungsi mengembalikan hasil yang persis sama dengan strftime('%Y-%m-%d', ...)
kembali. date()
function hanyalah cara yang lebih nyaman untuk melakukannya.
SELECT
date('now'),
strftime('%Y-%m-%d', 'now');
Hasil:
date('now') strftime('%Y-%m-%d', 'now') ----------- --------------------------- 2020-04-28 2020-04-28
Rentang Tanggal
Seperti semua fungsi tanggal dan waktu SQLite, date()
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.