Tambahkan 2 jam ke waktu sekarang di MySQL?

177

Sintaks yang valid dari kueri ini di MySQL?

SELECT * FROM courses WHERE (now() + 2 hours) > start_time

catatan: start_time adalah bidang tabel kursus

Ei Maung
sumber

Jawaban:

327
SELECT * 
FROM courses 
WHERE DATE_ADD(NOW(), INTERVAL 2 HOUR) > start_time

Lihat Fungsi Tanggal dan Waktu untuk manipulasi tanggal / waktu lainnya.

Glavić
sumber
45

Anda memerlukan DATE_SUB () OR DATE_ADD ()

Sergii
sumber
24
Kalau saja ada contoh.
Richard
29
SELECT * FROM courses WHERE (NOW() + INTERVAL 2 HOUR) > start_time
Daniël van Eeden
sumber
25

Fungsi DATE_ADD () akan melakukan trik. (Anda juga dapat menggunakan fungsi ADDTIME () jika Anda menjalankan setidaknya v4.1.1.)

Untuk permintaan Anda, ini akan menjadi:

SELECT * 
FROM courses 
WHERE DATE_ADD(now(), INTERVAL 2 HOUR) > start_time

Atau,

SELECT * 
FROM courses 
WHERE ADDTIME(now(), '02:00:00') > start_time
lc.
sumber
Kalau saja ada contoh.
TMS
Dokumentasi memiliki beberapa contoh yang baik (dan SO tidak dimaksudkan untuk menjadi pengganti untuk dokumentasi). Tetapi untuk kepentingan pertanyaan ini dan pengunjung masa depan, saya telah menambahkan kedua sintaksis.
lc.
1

Ini juga akan berfungsi

SELECT NAME 
FROM GEO_LOCATION
WHERE MODIFY_ON BETWEEN SYSDATE() - INTERVAL 2 HOUR AND SYSDATE()
Soumyajit Swain
sumber