SQLite datetime()
fungsi memungkinkan Anda mengembalikan nilai tanggal dan waktu berdasarkan string waktu dan pengubah apa pun.
Ini mengembalikan tanggal dalam format ini:YYYY-MM-DD HH:MM:SS
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
Sintaksnya seperti ini:
datetime(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 datetime()
fungsi yang digunakan dengan satu argumen.
SELECT datetime('now');
Hasil:
2020-04-28 23:56:06
now
string waktu diubah menjadi tanggal dan waktu saat ini.
Tambahkan Pengubah
Kita dapat memodifikasi hasil sebelumnya dengan menggunakan pengubah. Ini contohnya.
SELECT datetime('now', '+3 hours');
Hasil:
2020-04-29 02:56:52
Dalam hal ini, saya menambahkan tiga jam ke waktu. Mengingat waktu aslinya, ini juga mengakibatkan tanggal dimajukan ke hari berikutnya.
Beberapa Pengubah
Seperti yang disebutkan, Anda dapat menambahkan satu atau lebih pengubah. Berikut adalah contoh menambahkan pengubah lain ke contoh sebelumnya.
SELECT datetime('now', '+3 hours', 'localtime');
Hasil:
2020-04-29 12:58:13
Dalam kasus saya, localtime
pengubah menghasilkan waktu yang dimajukan.
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.
Ini dia lagi membandingkan waktu lokal asli dengan hasil modifikasi:
SELECT
datetime('now', 'localtime') AS "Local",
datetime('now', '+3 hours', 'localtime') AS "Modified";
Hasil:
Local Modified ------------------- ------------------- 2020-04-29 10:02:09 2020-04-29 13:02:09
Tanggal sebagai String Waktu
Contoh di atas menggunakan now
sebagai string waktu, tetapi Anda dapat memberikan string waktu yang valid.
Jika Anda hanya memberikan bagian tanggal, bagian waktu akan disetel ke semua nol.
SELECT datetime('2010-08-15');
Hasil:
2010-08-15 00:00:00
Jika hanya bagian waktu yang diberikan, maka tanggal diatur ke 01-01-2000.
SELECT datetime('23:58:57');
Hasil:
2000-01-01 23:58:57
Berikut adalah contoh yang menggunakan Hari Julian sebagai string waktu.
SELECT datetime('2451545.49927083');
Hasil:
2000-01-01 23:58:57
datetime() vs strftime()
datetime()
fungsi mengembalikan hasil yang persis sama dengan strftime('%Y-%m-%d %H:%M:%S', ...)
kembali. datetime()
function hanyalah cara yang lebih nyaman untuk melakukannya.
SELECT
datetime('now'),
strftime('%Y-%m-%d %H:%M:%S', 'now');
Hasil:
datetime('now') strftime('%Y-%m-%d %H:%M:%S', 'now') ------------------- ------------------------------------ 2020-04-29 00:16:12 2020-04-29 00:16:12
Rentang Tanggal
Seperti semua fungsi tanggal dan waktu SQLite, datetime()
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.