Ringkasan :dalam tutorial ini, kami akan menunjukkan cara bekerja dengan nilai tanggal dan waktu SQLite dan menggunakan fungsi tanggal dan waktu bawaan untuk menangani nilai tanggal dan waktu.
SQLite tidak mendukung kelas penyimpanan tanggal dan/atau waktu bawaan. Sebagai gantinya, ini memanfaatkan beberapa fungsi tanggal dan waktu bawaan untuk menggunakan kelas penyimpanan lain seperti TEXT
, REAL
, atau INTEGER
untuk menyimpan nilai tanggal dan waktu.
Menggunakan TEXT
kelas penyimpanan untuk menyimpan tanggal dan waktu SQLite
Jika Anda menggunakan TEXT
kelas penyimpanan untuk menyimpan nilai tanggal dan waktu, Anda perlu menggunakan format string ISO8601 sebagai berikut:
YYYY-MM-DD HH:MM:SS.SSS
Code language: SQL (Structured Query Language) (sql)
Misalnya, 2016-01-01 10:20:05.123
Pertama, buat tabel baru bernama datetime_text
untuk demonstrasi.
CREATE TABLE datetime_text(
d1 text,
d2 text
);
Code language: SQL (Structured Query Language) (sql)
Cobalah
Tabel berisi dua kolom d1
dan d2
dengan TEXT
tipe data.
Untuk memasukkan nilai tanggal dan waktu ke dalam datetime_text
tabel, Anda menggunakan DATETIME
fungsi.
Misalnya, untuk mendapatkan nilai tanggal dan waktu UTC saat ini, Anda meneruskan string literal sekarang ke fungsi sebagai berikut:
SELECT datetime('now');
Code language: SQL (Structured Query Language) (sql)
Cobalah
Untuk mendapatkan waktu lokal, Anda memberikan argumen tambahan localtime
.
SELECT datetime('now','localtime');
Code language: SQL (Structured Query Language) (sql)
Cobalah
Kedua, masukkan nilai tanggal dan waktu ke dalam datetime_text
tabel sebagai berikut:
INSERT INTO datetime_text (d1, d2)
VALUES(datetime('now'),datetime('now', 'localtime'));
Code language: SQL (Structured Query Language) (sql)
Cobalah
Ketiga, kueri data dari datetime_text
tabel.
SELECT
d1,
typeof(d1),
d2,
typeof(d2)
FROM
datetime_text;
Code language: SQL (Structured Query Language) (sql)
Cobalah
Menggunakan REAL
kelas penyimpanan untuk menyimpan nilai tanggal dan waktu SQLite
Anda dapat menggunakan kode REAL
kelas penyimpanan untuk menyimpan nilai tanggal dan/atau waktu sebagai angka hari Julian, yaitu jumlah hari sejak tengah hari di Greenwich pada tanggal 24 November 4714 SM. berdasarkan kalender Gregorian proleptik.
Mari kita lihat contoh penggunaan kelas penyimpanan REAL untuk menyimpan nilai tanggal dan waktu.
Pertama, buat tabel baru dengan nama datetime_real
.
CREATE TABLE datetime_real(
d1 real
);
Code language: SQL (Structured Query Language) (sql)
Cobalah
Kedua, masukkan nilai tanggal dan waktu "saat ini" ke dalam datetime_real
tabel.
INSERT INTO datetime_real (d1)
VALUES(julianday('now'));
Code language: SQL (Structured Query Language) (sql)
Cobalah
Kami menggunakan julianday()
berfungsi untuk mengonversi tanggal dan waktu saat ini ke Hari Julian.
Ketiga, kueri data dari datetime_real
tabel.
SELECT d1 FROM datetime_real;
Code language: SQL (Structured Query Language) (sql)
Cobalah
Outputnya tidak dapat dibaca manusia.
Untungnya, Anda dapat menggunakan date()
. bawaan dan time()
berfungsi untuk memformat nilai tanggal dan waktu sebagai berikut:
SELECT
date(d1),
time(d1)
FROM
datetime_real;
Code language: SQL (Structured Query Language) (sql)
Cobalah
Menggunakan INTEGER
untuk menyimpan nilai tanggal dan waktu SQLite
Selain TEXT
dan REAL
kelas penyimpanan, Anda dapat menggunakan INTEGER
kelas penyimpanan untuk menyimpan nilai tanggal dan waktu.
Kami biasanya menggunakan INTEGER
untuk menyimpan waktu UNIX yang merupakan jumlah detik sejak 1970-01-01 00:00:00 UTC
. Lihat contoh berikut:
Pertama, buat tabel yang memiliki satu kolom yang tipe datanya INTEGER
untuk menyimpan nilai tanggal dan waktu.
CREATE TABLE datetime_int (d1 int);
Code language: SQL (Structured Query Language) (sql)
Cobalah
Kedua, masukkan nilai tanggal dan waktu saat ini ke dalam datetime_int
tabel.
INSERT INTO datetime_int (d1)
VALUES(strftime('%s','now'));
Code language: SQL (Structured Query Language) (sql)
Cobalah
Ketiga, kueri data dari datetime_int
tabel.
SELECT d1 FROM datetime_int;
Code language: SQL (Structured Query Language) (sql)
Cobalah
Ini bilangan bulat.
Untuk memformat hasilnya, Anda dapat menggunakan datetime()
. bawaan fungsinya sebagai berikut:
SELECT datetime(d1,'unixepoch')
FROM datetime_int;
Code language: SQL (Structured Query Language) (sql)
Cobalah
Dengan menggunakan SQLite, Anda dapat dengan bebas memilih tipe data apa pun untuk menyimpan nilai tanggal dan waktu dan menggunakan fungsi tanggal dan waktu bawaan untuk mengonversi antar format.
Untuk informasi rinci tentang fungsi tanggal dan waktu SQLite, lihat fungsi tanggal dan waktu bawaan.
Dalam tutorial ini, Anda telah mempelajari cara menggunakan TEXT
, REAL
, dan INTEGER
kelas penyimpanan untuk menyimpan nilai tanggal dan waktu. Selain itu, Anda telah mempelajari cara menggunakan fungsi tanggal dan waktu bawaan untuk mengonversi nilai tanggal dan waktu yang disimpan ke dalam format yang dapat dibaca.