如何搜索两个日期之间的记录。但表日期格式是 varchar
Posted
技术标签:
【中文标题】如何搜索两个日期之间的记录。但表日期格式是 varchar【英文标题】:how to search records beetween two dates. But table date format is varchar 【发布时间】:2018-12-11 10:54:19 【问题描述】:我有一张桌子。其中,列名为tb_date
,即varchar
格式。在该列中保存日期,但格式不同(如:01/07/201 OR 01-08-2018
或2017/03/12
等)。
现在我想在给定日期之间进行搜索。但它不起作用。我试过了-
SELECT * FROM `user_History` WHERE date_format(str_to_date(`tb_date`, '%d/%m/%Y'), '%d/%m/%Y') BETWEEN '01/06/2018' AND '31/06/2018'
但它给出了所有记录。 我在我的sql中试过了。
有什么问题?
【问题讨论】:
首先,清理数据。 【参考方案1】:问题出在您的str_to_date(tb_date, '%d/%m/%Y')
,您给出了导入日期的格式%d/%m/%Y
,但您在此字段中有不同的格式。
我认为,您应该通过 php 处理所有表格,例如,通过函数 strtotime()
将所有日期转换为 UNIX_TIMESTAMP。
这将比尝试为其创建 SQL 查询更容易。
【讨论】:
以上是关于如何搜索两个日期之间的记录。但表日期格式是 varchar的主要内容,如果未能解决你的问题,请参考以下文章