Mysql选择查询不能正常工作

时间:2017-12-16 07:52:48

标签: mysql

SELECT * FROM `customers` where warranty_end BETWEEN '01/12/2017' AND '31/12/2017'

以上是我的查询,warranty_end列内容为30/12/2018

但查询导致Row From Database。

enter image description here

1 个答案:

答案 0 :(得分:2)

看起来您的warranty_end列是文本,而且您存储的日期是非ISO格式。这里的一个解决方法是使用STR_TO_DATE将文本日期转换为实际日期:

SELECT *
FROM customers
WHERE STR_TO_DATE(warranty_end, '%d/%m/%Y') BETWEEN '2017-12-01' AND '2017-12-31';

请注意,BETWEEN子句实际上使用ISO日期文字。

向前推进一个更好的选择是将保修结束日期存储在日期列中,例如datetime