我有以下 where 子句
AND DATE_FORMAT( l.created_on, "%d/%m/%Y" ) BETWEEN '06/02/2013' AND '07/02/2013'
created_on
时间戳在哪里。
现在由于某种原因,查询也返回了前几个月的行。有谁知道为什么?
笔记 :
我需要采用特定格式的日期
Mysql 字符串日期格式遵循模式 yyyy-mm-dd。如果您有时间戳,请勿转换为日期,只需比较时间戳即可。
WHERE l.created_on
BETWEEN UNIX_TIMESTAMP('2012/02/06') AND UNIX_TIMESTAMP('2013/02/07')
如果created_on
已经是日期(数据类型),
您可以使用直接查询它,
WHERE created_on BETWEEN '2013-02-06' AND '2013-02-07'
但如果日期是一个字符串,使用STR_TO_DATE
WHERE STR_TO_DATE(l.created_on, '%d-%m-%Y') BETWEEN '2013-02-06' AND '2013-02-07'
更新 1
由于您不想更改输入日期的格式,因此您需要使用STR_TO_DATE
WHERE l.created_on BETWEEN STR_TO_DATE('06/02/2013','%d/%m/%Y') AND
STR_TO_DATE('07/02/2013','%d/%m/%Y')