我创建了一个在日期范围之间返回结果的查询,但是之前的开发人员通过将日期保存为MySQL中的varchar(10)
以及两种格式(Y-m-d
和d-m-Y
)。
我的问题是,当我从 01-June-2015
到 11-June-2015
的日期之间选择结果时,它给了我 {{1 18
的结果。
但是当我从 June 2015
到 01-june-2014
的日期之间选择结果时,它给了我 11-June-2015
< / strong> 13
的结果,我认为必须 June 2015
结果。
任务:在日期范围内获得新访客的总数但是日期不存在于访客表中我因此从访问表中获取了他第一次访问日期这就是我使用18
函数的原因
MySQL查询是:
MIN()
请帮助我,我做错了什么。我花了大约4天的时间思考并做了不同的事情但却陷入困境。 我希望能尽快收到你的来信,谢谢。
答案 0 :(得分:0)
如果日期格式不是Y-m-d
,您需要做的就是找出答案。如果格式为d-m-Y
,请将其更改为Y-m-d
,然后进行比较,例如:
WHERE
IF(SUBSTRING(visits.date_check_in, 5, 1) = '-',
visits.date_check_in,
STR_TO_DATE(visits.date_check_in, '%d-%m-%Y')
) BETWEEN '2014-06-11' AND '2015-06-11'