簡體   English   中英

小於等於特定日期的查詢不能在相等的日期工作

[英]Less equal than specific date query not working on equal date

我有這個查詢:

SELECT COUNT(a.No_Registrasi) as Jumlah, b.Nama_Negara, a.Tanggal_Reg
FROM tb_registrasi a
JOIN tb_negara_tujuan b
   ON a.ID_Negara = b.ID_Negara
WHERE a.Tanggal_Reg >= '2016-02-01' AND a.Tanggal_Reg <= '2016-03-01'
GROUP BY b.Nama_Negara

結果是:
結果

但是當即時消息更改為:

SELECT COUNT(a.No_Registrasi) as Jumlah, b.Nama_Negara, a.Tanggal_Reg
FROM tb_registrasi a
JOIN tb_negara_tujuan b
   ON a.ID_Negara = b.ID_Negara
WHERE a.Tanggal_Reg >= '2016-02-01' AND a.Tanggal_Reg <= '2016-02-29' //this one
GROUP BY b.Nama_Negara

它沒有顯示任何結果,我試圖從兩個不同的日期之間選擇數據,但是當月末該日期有數據時,它沒有顯示該數據。 說我有5個數據注冊到2016年4月30日,當我從2016-04-01到2016-04-30選擇數據時,它沒有顯示任何結果。
希望大家明白我的意思,在此先感謝。

DATE函數應用於列

WHERE DATE(a.Tanggal_Reg) >= '2016-02-01' AND DATE(a.Tanggal_Reg) <= '2016-02-29'

或之間使用

WHERE DATE(a.Tanggal_Reg) BETWEEN '2016-02-01' AND '2016-02-29'

因此,您的查詢將是:

SELECT COUNT(a.No_Registrasi) as Jumlah, b.Nama_Negara, a.Tanggal_Reg
FROM tb_registrasi a
JOIN tb_negara_tujuan b
   ON a.ID_Negara = b.ID_Negara
WHERE DATE(a.Tanggal_Reg) >= '2016-02-01' AND DATE(a.Tanggal_Reg) <= '2016-02-29' //this one
GROUP BY b.Nama_Negara

或之間

SELECT COUNT(a.No_Registrasi) as Jumlah, b.Nama_Negara, a.Tanggal_Reg
    FROM tb_registrasi a
    JOIN tb_negara_tujuan b
       ON a.ID_Negara = b.ID_Negara
    WHERE DATE(a.Tanggal_Reg) BETWEEN '2016-02-01' AND '2016-02-29' 
    GROUP BY b.Nama_Negara

您是否嘗試過以下查詢?

SELECT COUNT(a.No_Registrasi) as Jumlah, b.Nama_Negara, a.Tanggal_Reg
FROM tb_registrasi a
JOIN tb_negara_tujuan b
ON a.ID_Negara = b.ID_Negara
WHERE a.Tanggal_Reg >= '2016-02-01 00:00:00' AND a.Tanggal_Reg <= '2016-02-29 23:59:59'
GROUP BY b.Nama_Negara

您也可以使用BETWEEN作為

SELECT COUNT(a.No_Registrasi) as Jumlah, b.Nama_Negara, a.Tanggal_Reg
FROM tb_registrasi a
JOIN tb_negara_tujuan b
   ON a.ID_Negara = b.ID_Negara
WHERE a.Tanggal_Reg BETWEEN '2016-02-01 00:00:00' AND '2016-02-29 23:59:59'
GROUP BY b.Nama_Negara

我認為您有一個小時的問題。 SQL在2016-02-01 00:00:00和2016-02-29 00:00:00之間獲取數據。 要獲得一個月的數據,您可以在第二天獲得如下數據:

WHERE a.Tanggal_Reg >= '2016-02-01' AND a.Tanggal_Reg <= '2016-03-01'

或者,您可以嘗試花幾個小時查詢:

    SELECT COUNT(a.No_Registrasi) as Jumlah, b.Nama_Negara, a.Tanggal_Reg
FROM tb_registrasi a
JOIN tb_negara_tujuan b
   ON a.ID_Negara = b.ID_Negara
WHERE a.Tanggal_Reg >= '2016-02-01 00:00:00' AND a.Tanggal_Reg <= '2016-02-29 23:59:59' 
GROUP BY b.Nama_Negara

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM