Kueri / tanggal MYSQL lebih lama dari 1 minggu yang lalu (semua waktu dalam UTC)

89

Bagaimana cara query db mysql untuk mengembalikan semua catatan dengan datetime lebih lama dari 1 minggu yang lalu. Perhatikan bahwa tabel datetime menyimpan semuanya dalam UTC, dan saya harus membandingkannya dengan tabel itu sendiri.

Hanya untuk memperjelas - Saya mencari kueri mysql murni.

tzmatt7447
sumber

Jawaban:

216
SELECT * FROM tbl WHERE datetime < NOW() - INTERVAL 1 WEEK

Jika tabel Anda menyimpan waktu dalam zona waktu yang berbeda dari yang NOW()dikembalikan, Anda dapat menggunakan UTC_TIMESTAMP()sebagai gantinya untuk mendapatkan stempel waktu dalam UTC.

reko_t
sumber
18
SELECT * FROM table WHERE DATEDIFF(NOW(),colname) > 7;
Sajjad Shirazy
sumber
5
Meskipun kode ini dapat menjawab pertanyaan, memberikan konteks tambahan tentang mengapa dan / atau bagaimana kode ini menjawab pertanyaan tersebut meningkatkan nilai jangka panjangnya.
JAL
yang ini lebih pendek, haruskah saya menggunakan yang ini?
moeiscool
4
Mungkin ini lebih pendek tapi bagaimana bisa menggunakan indeks.
swdev
13
SELECT SUBDATE('2008-01-02', 7);

ATAU

SELECT SUBDATE(now(), INTERVAL 1 week);

Hasil:

2007-12-26

Michael Pakhantsov
sumber