Where子句与dateformat和其他变量

时间:2017-08-06 19:44:12

标签: mysql sql

SELECT * FROM `siparisler` WHERE `cafe_id` = 3 AND DATE_FORMAT(tarih,'%Y-%m-%d') BETWEEN 2017-08-01 AND 2017-08-06

我的日期在我的桌子上列出(tarih)2017-02-22 15:28:33 所以我想在cafe_id为3并且在这两个日期之间找到tarih时检索数据。

但是当我运行此查询时,我得到零结果。 可能是什么问题。我找不到任何解决方案。

2 个答案:

答案 0 :(得分:0)

您错过了引用日期字符串文字。它应该是

BETWEEN '2017-08-01' AND '2017-08-06'

答案 1 :(得分:0)

DATE_FORMAT()用于日期数据类型。你不需要它。您只需要常量周围的引号:

SELECT s.*
FROM siparisler s
WHERE s.cafe_id = 3 AND
      s.tarih >= '2017-08-01' AND
      s.tarih < '2017-08-07'

请注意,我将条件从BETWEEN更改为直接比较。这是故意的。无论tarih是否具有时间组件,此逻辑都将起作用。