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.

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.


18
SELECT * FROM table WHERE DATEDIFF(NOW(),colname) > 7;

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.