Saya memiliki tabel bernama Product_Sales
dan menyimpan data seperti ini
Product_ID | Sold_by | Qty | From_date | To_date
-----------+---------+-----+------------+-----------
3 | 12 | 7 | 2013-01-05 | 2013-01-07
6 | 22 | 14 | 2013-01-06 | 2013-01-10
8 | 11 | 9 | 2013-02-05 | 2013-02-11
Sekarang apa pertanyaannya jika saya ingin memilih data penjualan antara dua tanggal dari rentang tanggal?
Misalnya, saya ingin memilih data penjualan dari 2013-01-03
sampai 2013-01-09
.
Jawaban:
Seperti yang Anda lihat, ada dua cara untuk menyelesaikan sesuatu:
Jelas, cara kedua jauh lebih sederhana (hanya dua kasus melawan empat).
SQL Anda akan terlihat seperti:
sumber
WHERE NOT
kondisi ini , membalikkan operator dan menambahkan persamaan juga berhasil:SELECT * FROM Product_sales WHERE From_date <= @RangeTill OR To_date >= @RangeFrom
Anda harus menutupi semua kemungkinan. From_Date atau To_Date bisa jadi antara rentang tanggal Anda atau tanggal pencatatan bisa mencakup seluruh rentang.
Jika salah satu dari
From_date
atau diTo_date
antara tanggal, atauFrom_date
kurang dari tanggal mulai danTo_date
lebih besar dari tanggal akhir; maka baris ini harus dikembalikan.sumber
Coba kueri berikut untuk mendapatkan tanggal di antara rentang:
sumber
start_date
tetapi berakhir antarastart_date
danend_date
. Di sisi lain, pertanyaannya tidak cukup jelas. Saya kira, kami tidak memiliki petunjuk apakah kami harus melakukan penjualan yang hanya di antara tanggal tertentu atau tanggal yang sebagian menyertakan rentang tanggal, tetapi dapat diperpanjang di satu sisi atau sisi lain atau keduanya? Jadi masalah dasarnya adalah tentang pertanyaan yang tidak jelas.sumber
Ini mencakup semua kondisi yang Anda cari.
sumber
sumber
Silakan coba:
sumber
Hanya 2 sen saya, saya merasa menggunakan format "dd-MMM-yyyy" paling aman karena server db akan tahu apa yang Anda inginkan terlepas dari pengaturan regional di server. Jika tidak, Anda berpotensi mengalami masalah di server yang memiliki pengaturan regional tanggalnya sebagai tttt-hh-mm (untuk alasan apa pun)
Jadi:
Itu selalu bekerja dengan baik untuk saya ;-)
sumber
Ini bekerja pada SQL_Server_2008 R2
sumber
sumber
Kueri ini akan membantu Anda:
sumber
sumber
Periksa kueri ini, saya membuat kueri ini untuk memeriksa apakah tanggal check-in melebihi lap dengan tanggal reservasi
ini akan mengembalikan detail yang tumpang tindih, untuk mendapatkan detail yang tidak tumpang tindih, lalu hapus 'TIDAK' dari kueri
sumber
Anda juga dapat mencoba menggunakan fragmen berikut:
sumber
Ini mudah, gunakan kueri ini untuk menemukan data pilihan dari rentang tanggal antara dua tanggal
sumber
Anda harus membandingkan tanggal dalam sql seperti Anda membandingkan nilai angka,
sumber
Berikut adalah kueri untuk menemukan semua penjualan produk yang berjalan selama bulan Agustus
Juga menambahkan pernyataan kasus untuk memvalidasi kueri
sumber
sumber
ini mudah, gunakan kueri ini untuk menemukan apa yang Anda inginkan.
sumber