不等于特定日期查询不在相同日期工作

时间:2016-06-02 07:02:55

标签: php mysql codeigniter

我有这个问题:

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

结果是:
result

但是当我改为:

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-04-30,当我从2016-04-01到2016-04-30选择数据时,它没有显示任何结果。
我希望你们明白我的意思,提前谢谢。

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您是否尝试过以下查询?

object.send(relationship_plural) << Book.first

答案 2 :(得分:1)

您也可以使用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

答案 3 :(得分:0)

我认为你有一个小时的问题。 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