SQLite - Date & Waktu

Hai teman-teman, para pemula pemrograman! Hari ini, kita akan mendalamkan dunia yang menarik tentang tanggal dan waktu di SQLite. Sebagai guru komputer tetangga yang ramah, saya akan mengarahkan Anda dalam perjalanan ini dengan banyak contoh dan penjelasan. Jadi, sabar dan mari kita mulai!

SQLite - Date & Time

String Waktu

Di SQLite, tanggal dan waktu biasanya disimpan sebagai string teks. Ini mungkin terlihat aneh pertama kali, 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

Contohnya:

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

Ini mewakili tanggal 15 Juni 2023, pukul 2:30 sore.

Format Lain yang Diterima

SQLite sangat toleran terhadap format tanggal dan waktu. Berikut adalah beberapa format lain 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 coba sebuah 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 tanggal dan waktu. Sangat menarik, kan?

Modifier

Sekarang, mari bicarakan tentang modifier. Ini adalah kata kunci khusus yang memungkinkan kita mengubah tanggal dan waktu. Mereka seperti tongkat sihir untuk string waktu kita!

Modifier Umum

Berikut adalah tabel dari modifier umum:

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

Mari lihat modifier ini 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 menunjukkan tanggal hari ini, tanggal besok, tanggal satu bulan yang lalu, awal bulan saat ini, dan tanggal Senin berikutnya. Sangat praktis, kan?

Formatter

Formatter adalah seperti stylist dunia tanggal dan waktu. Mereka membantu kita menyajikan tanggal dan waktu kita dalam bentuk yang berbeda.

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 lihat beberapa penentu format umum:

Penentu Deskripsi
%Y Tahun (4 digit)
%m Bulan (01-12)
%d Hari bulan (01-31)
%H Jam (00-23)
%M Menit (00-59)
%S Detik (00-59)
%w Hari 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 menunjukkan tanggal saat ini, waktu saat ini, tanggal dan waktu saat ini, hari minggu (0-6), dan tanggal bulan mendatang.

Contoh Menyenangkan

Mariakhiri dengan contoh yang menyenangkan. Bayangkan Anda sedang merencanakan pesta, dan Anda ingin tahu hari minggu apa itu akan menjadi dalam 100 hari mendatang:

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 apa itu akan menjadi. sempurna untuk perencanaan pesta!

Dan itu adalah semua, teman-teman! Kita telah melakukan perjalanan melalui negeri tanggal dan waktu di SQLite. Ingat, latihan membuat sempurna, jadi jangan khawatir untuk mencoba fungsi-fungsi ini. Sebelum Anda tahu, Anda akan menjadi ahli tanggal dan waktu! Selamat coding!

Credits: Image by storyset