Hai, saya memiliki tabel dengan kolom tanggal dan beberapa informasi lainnya. Saya ingin memilih semua entri dari minggu lalu, (minggu mulai dari Minggu).
nilai tabel:
id date
2 2011-05-14 09:17:25
5 2011-05-16 09:17:25
6 2011-05-17 09:17:25
8 2011-05-20 09:17:25
15 2011-05-22 09:17:25
Saya ingin memilih semua id dari minggu lalu, output yang diharapkan adalah 5, 6, 8. (id 2 tidak di minggu lalu, dan id 15 di minggu ini.)
Bagaimana menulis dan SQL Query untuk hal yang sama.
SELECT id FROM tbl WHERE WEEK(date, 0) = WEEK(NOW(), 0) - 1
selama berminggu-minggu, tapi kurasa targetnya bukanlah minggu kalender yang sebenarnya. Setidaknya dia tidak menyebutkan s / t seperti ISO-8601, atau apakah dia ingin pergantian tahun dipertimbangkan.WHERE table.column >= DATE(NOW()) - INTERVAL 7 DAY
Jawaban:
sumber
sumber
id 15
...Saya menggunakan fungsi YEARWEEK secara khusus untuk kembali ke seluruh minggu kalender sebelumnya (berlawanan dengan 7 hari sebelum hari ini). YEARWEEK juga memungkinkan argumen kedua yang akan mengatur awal minggu atau menentukan bagaimana minggu pertama / terakhir dalam setahun ditangani. YEARWEEK memungkinkan Anda menyimpan jumlah minggu mundur / maju dalam satu variabel, dan tidak akan menyertakan angka minggu yang sama dari tahun-tahun sebelumnya / mendatang, dan ini jauh lebih pendek daripada kebanyakan jawaban lain di sini.
sumber
WHERE YEARWEEK(dateColumnFromTbl, 1) = YEARWEEK(CURDATE() - INTERVAL 1 WEEK, 1)
Bentuk yang disederhanakan:
Data minggu lalu:
Data 2 minggu yang lalu:
SQL Fiddle
http://sqlfiddle.com/#!8/6fa6e/2
sumber
Anda dapat melakukan perhitungan di php dan kemudian menambahkannya ke kueri Anda:
sekarang ini akan memberikan tanggal untuk seminggu yang lalu
sumber
Mungkin cara paling sederhana adalah:
Selama 8 hari (yaitu Senin - Senin)
sumber
TOLONG orang ... 'Minggu lalu' seperti yang diminta OP dan di mana saya mencari (tetapi tidak menemukan jawaban yang memuaskan) adalah MINGGU TERAKHIR.
Jika hari ini adalah Selasa, maka MINGGU TERAKHIR adalah Senin MINGGU YANG LALU hingga Minggu MINGGU YANG LALU .
Begitu:
Atau untuk minggu ISO:
sumber
Anda harus menghitung hari mana yang relatif terhadap hari ini adalah hari Minggu di middleware Anda (php, python, dll.) *
Kemudian,
sumber
Bisa dalam satu baris:
sumber
Cara yang sederhana adalah yang ini, ini adalah contoh nyata dari kode saya dan berfungsi dengan sempurna:
sumber
Kueri di atas tidak akan berfungsi. Setelah
where
klausa, jika kita tidak bisaCAST
nilai kolom, maka itu tidak akan berhasil. Anda haruscast
nilai kolom.misalnya:
sumber
sumber
Saya sering melakukan pemeriksaan cepat "minggu lalu" juga dan berikut ini cenderung bekerja dengan baik untuk saya dan termasuk hari ini.
Jika Anda ingin TIDAK menyertakan hari ini, kurangi satu hari ekstra dari @EndDate. Jika saya memilih dua variabel ini sekarang dapatkan
Jika saya menginginkan hari Minggu hingga Minggu saya akan memiliki yang berikut ini.
sumber
sumber
Anda juga bisa menggunakannya dengan cara lain
sumber
Saya Gunakan ini untuk minggu mulai dari MINGGU:
sumber
Untuk lebih banyak contoh Seperti bulan lalu, tahun lalu, 15 hari terakhir, 3 bulan terakhir
Ambil Rekaman MINGGU Terakhir
Menggunakan kueri MySQL di bawah ini untuk mengambil catatan minggu lalu dari tabel database mysql.
sumber
Berikut adalah cara untuk mendapatkan record minggu, bulan, dan tahun terakhir di MySQL.
Minggu lalu
Bulan lalu
TAHUN lalu
sumber
Jika Anda ingin mengambil catatan dalam 7 hari terakhir, Anda dapat menggunakan cuplikan di bawah ini:
sumber
Coba ini:
sumber
Jika Anda sudah mengetahui tanggalnya maka Anda bisa menggunakan antara, seperti ini:
sumber