SQLite - Tarikh & Waktu

Hai sana, para pemrogram yang sedang berkembang! Hari ini, kita akan mendalamkan pengetahuan tentang tarikh dan waktu dalam SQLite. Sebagai guru komputer tetangga yang ramah, saya akan memandu anda dalam perjalanan ini dengan banyak contoh dan penjelasan. Jadi, siapkan diri dan mari kita mulai!

SQLite - Date & Time

String Waktu

Dalam SQLite, tarikh dan waktu biasanya disimpan sebagai string teks. Ini mungkin terlihat aneh pada awalnya, tapi sebenarnya sangat fleksibel dan mudah untuk digunakan. Mari kita lihat beberapa format umum:

Format ISO8601

Format yang paling umum adalah ISO8601, yang tampak seperti ini:

YYYY-MM-DD HH:MM:SS

Misalnya:

'2023-06-15 14:30:00'

Ini mewakili 15 Juni 2023, pukul 2:30 PM.

Format Yang Diterima Lainnya

SQLite sangat lunak dalam hal format tarikh dan waktu. Berikut adalah beberapa format yang diterima:

YYYY-MM-DD
YYYY-MM-DD HH:MM
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

Mari kita cobalah contoh:

CREATE TABLE events (
id INTEGER PRIMARY KEY,
event_name TEXT,
event_date TEXT
);

INSERT INTO events (event_name, event_date) VALUES
('Birthday Party', '2023-07-01'),
('Movie Night', '2023-07-15 20:00'),
('Morning Jog', '06:30');

SELECT * FROM events;

Ini akan membuat tabel dengan berbagai format tarikh dan waktu. Sangat menarik, kan?

Modifier

Sekarang, mari kita bicarakan tentang modifier. Ini adalah kata kunci khusus yang memungkinkan kita untuk memanipulasi tarikh dan waktu. Mereka seperti tongkat ajaib untuk string waktu kita!

Modifier Umum

Berikut adalah tabel modifier umum:

Modifier Deskripsi
+N days Menambah N hari ke tarikh
-N days Mengurangi N hari dari tarikh
start of month Mengubah tarikh menjadi hari pertama bulan
start of year Mengubah tarikh menjadi hari pertama tahun
weekday N Mengubah tarikh menjadi tanggal berikutnya saat hari dalam minggu adalah N (0=Ahad, 1=Senin, dll.)

Mari kita lihat mereka dalam aksi:

SELECT
date('now') AS today,
date('now', '+1 day') AS tomorrow,
date('now', '-1 month') AS last_month,
date('now', 'start of month') AS month_start,
date('now', 'weekday 1') AS next_monday;

Query ini akan menampilkan tanggal hari ini, tanggal besok, tanggal sebuah bulan yang lalu, awal bulan saat ini, dan tanggal Senin berikutnya. Sangat praktis, kan?

Formatter

Formatter adalah seperti stylist dunia tarikh dan waktu. Mereka membantu kita mempresentasikan tarikh dan waktu kita dalam berbagai cara.

Fungsi strftime()

Fungsi utama yang kita gunakan untuk pemformatan adalah strftime(). Ini berarti "string format time". Berikut adalah sintaks dasar:

strftime(format, time-string, modifiers...)

Mari kita lihat beberapa penentu format umum:

Penentu Deskripsi
%Y Tahun (4 digit)
%m Bulan (01-12)
%d Hari dalam bulan (01-31)
%H Jam (00-23)
%M Menit (00-59)
%S Detik (00-59)
%w Hari dalam minggu (0-6 dengan Ahad=0)

Sekarang, mari kita gabungkan semuanya:

SELECT
strftime('%Y-%m-%d', 'now') AS date_only,
strftime('%H:%M', 'now') AS time_only,
strftime('%Y-%m-%d %H:%M:%S', 'now') AS date_time,
strftime('%w', 'now') AS day_of_week,
strftime('%Y-%m-%d', 'now', '+1 month') AS next_month;

Query ini akan menampilkan tanggal saat ini, waktu saat ini, tanggal dan waktu saat ini, hari dalam minggu (0-6), dan tanggal bulan depan.

Contoh Menyenangkan

Mari kitaakhiri dengan contoh menyenangkan. Bayangkan Anda merencanakan pesta, dan Anda ingin tahu hari minggu yang akan datang dalam 100 hari:

SELECT
strftime('%Y-%m-%d', 'now', '+100 days') AS party_date,
CASE cast(strftime('%w', 'now', '+100 days') AS INTEGER)
WHEN 0 THEN 'Sunday'
WHEN 1 THEN 'Monday'
WHEN 2 THEN 'Tuesday'
WHEN 3 THEN 'Wednesday'
WHEN 4 THEN 'Thursday'
WHEN 5 THEN 'Friday'
WHEN 6 THEN 'Saturday'
END AS party_day;

Query ini akan memberitahu Anda tanggal 100 hari mendatang dan hari minggu yang akan datang. Sempurna untuk perencanaan pesta!

Dan begitu saja, teman-teman! Kita telah melakukan perjalanan melalui dunia tarikh dan waktu SQLite. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba fungsi-fungsi ini. Sebelum Anda sadari, Anda akan menjadi ahli tarikh dan waktu! Selamat coding!

Credits: Image by storyset