Masalah:
Anda ingin menambahkan sejumlah waktu tertentu ke nilai datetime di database MySQL.
Contoh:
Basis data kami memiliki tabel bernama flight_schedule
dengan data di kolom flight
, aircraft
, dan arrival_datetime
.
penerbangan | pesawat | waktu_tanggal_kedatangan |
---|---|---|
EK10 | L1201 | 20-04-2019 15:15:00 |
AY12 | K2001 | 31-03-2019 20:10:00 |
LA105 | F205 | 03-08-2019 11:15:00 |
LH30 | K256 | 01-07-2019 12:47:00 |
Untuk setiap penerbangan, dapatkan kode penerbangan, kode pesawat, dan tanggal dan waktu kedatangan yang baru. Untuk menghitung new_arrival_datetime
, kami akan menambahkan 2 jam 10 menit ke waktu saat ini untuk setiap kedatangan – sebanyak itulah penundaan penerbangan ini.
Solusi:
Kami akan menggunakan ADDTIME()
fungsi. Inilah kueri yang akan Anda tulis:
SELECT flight, aircraft, ADDTIME(arrival_datetime, ‘2:10’) AS new_arrival_datetime FROM flight_schedule;
Berikut hasil querynya:
penerbangan | pesawat | waktu_kedatangan_baru |
---|---|---|
EK10 | L1201 | 20-04-2019 17:25:00 |
AY12 | K2001 | 31-03-2019 22:20:00 |
LA105 | F205 | 03-08-2019 13:25:00 |
LH30 | K256 | 01-07-2019 14:57:00 |
Diskusi:
Gunakan fungsi ADDTIME() jika Anda ingin memilih datetime baru dengan menambahkan waktu tertentu ke nilai datetime/timestamp/time.
Fungsi ini membutuhkan dua argumen. Argumen pertama adalah datetime/time yang kita tambahkan waktu; ini bisa berupa ekspresi yang mengembalikan nilai waktu/tanggal-waktu/stempel waktu atau nama kolom waktu/tanggal-waktu/cap waktu. Dalam contoh kami, kami menggunakan arrival_datetime
kolom, yang merupakan datetime tipe data.
Argumen kedua adalah string yang berisi jumlah waktu untuk ditambahkan ke argumen pertama (dalam contoh kita, '2:10', atau 2 jam 10 menit).
Anda juga dapat menambahkan pecahan detik dan bahkan hari ke nilai tanggal/waktu. Kueri di bawah ini menambahkan 3 hari, 1 jam, 1 menit, 1 detik, dan 111 detik pecahan ke tanggal dan waktu:
SELECT ADDTIME('2019-02-05 10:12:11', '3 1:1:1.111');
Ini mengembalikan:
2019-02-08 11:13:12.111000
ADDTIME() mengembalikan string dengan waktu baru. Dalam contoh kami, waktu kedatangan baru untuk penerbangan ‘EK10’ adalah '2019-04-20 17:25:00' – dua jam sepuluh menit setelah tanggal aslinya
‘2019-04-20 15:15:00’.