Masalah:
Anda ingin memformat kolom atau nilai datetime di SQLite.
Contoh:
Basis data kami memiliki tabel bernama ticket
dengan data di kolom passenger_ID
, train_number
, dan sale_datetime
.
passenger_ID | nomor_kereta | tanggal_penjualan |
---|---|---|
245NX | 4505 | 17-10-2019 12:56:30 |
127RG | 3403 | 17-10-2019 11:45:23 |
567FH | 4505 | 18-10-2019 12:40:32 |
230AP | 6700 | 18-10-2019 13:20:20 |
118BB | 3403 | 18-10-2019 13:13:13 |
Untuk setiap penjualan tiket, dapatkan ID penumpang, nomor kereta, serta tanggal dan waktu penjualan. Kami ingin memformat tanggal penjualan untuk menunjukkan hari, bulan, dan tahun yang dipisahkan oleh garis miring (/), dengan koma antara tahun dan waktu. Kami hanya menginginkan jam dan menit penjualan.
Inilah kueri yang akan Anda tulis:
Solusi:
SELECT passenger_ID, train_number, STRFTIME('%d/%m/%Y, %H:%M', sale_datetime) AS sale_formatted_datetime FROM ticket;
Berikut hasil querynya:
passenger_ID | nomor_kereta | sale_formatted_datetime |
---|---|---|
245NX | 4505 | 17/10/2019, 12:56 |
127RG | 3403 | 17/10/2019, 11:45 |
567FH | 4505 | 18/10/2019, 12:40 |
230AP | 6700 | 18/10/2019, 13:20 |
118BB | 3403 | 18/10/2019, 13:13 |
Diskusi:
Gunakan STRFTIME()
berfungsi untuk memformat data date\time\datetime di SQLite. Fungsi ini membutuhkan dua argumen. Argumen pertama adalah string format yang berisi pola bagian tanggal/waktu. Dalam contoh kita, kita menggunakan format string ‘%d/%m/%Y, %H:%M '. Dalam string ini:
- %d adalah hari dengan dua digit.
- %m adalah bulan dengan dua digit.
- %Y adalah tahun empat digit.
- %H adalah dua digit jam.
- %M adalah menit dua digit.
Anda dapat menemukan lebih banyak penentu tanggal dan waktu dalam dokumentasi SQLite.
Argumen kedua adalah nilai waktu/tanggal/tanggal waktu yang akan diformat. Ini bisa berupa ekspresi yang mengembalikan nilai waktu/tanggal/tanggal atau nama kolom waktu/tanggal/tanggal. (Dalam contoh kita, ini adalah kolom sale_datetime
.)
STRFTIME()
mengembalikan tanggal dan waktu yang diformat. Dalam contoh kami, tanggal dan waktu yang diformat tidak berisi detik dan bagian tanggal dipisahkan oleh garis miring (/) alih-alih tanda hubung (-).