我正在触发Sql Query以获取wp_postmeta表中两个日期之间的记录。
我正在运行以下查询:
SELECT *
FROM `wp_postmeta`
WHERE`meta_key` LIKE 'date'
AND `meta_value` >= '02/01/2015'
AND `meta_value` < '20/10/2015'
此查询应返回在2015年1月2日至2015年10月20日之间具有重叠值的结果
不幸的是它返回2014年1月1日和2014年的所有其他记录。
它会返回错误的结果。它显示了2014年的结果日期。
我在做错了什么?我想通过meta_value 获取两个日期之间的记录答案 0 :(得分:4)
将您的varchar日期转换为实际日期。然后使用between
SELECT *
FROM `wp_postmeta`
WHERE`meta_key` = 'date'
AND STR_TO_DATE(meta_value, '%d/%m/%Y') between '2015-01-02' AND '2015-10-19'
或<
和>
SELECT *
FROM `wp_postmeta`
WHERE`meta_key` = 'date'
AND STR_TO_DATE(meta_value, '%d/%m/%Y') >= '2015-01-02'
AND STR_TO_DATE(meta_value, '%d/%m/%Y') < '2015-10-20'