mysql使用元值获取两个日期之间的记录

时间:2015-02-05 08:18:49

标签: mysql date

我正在触发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

获取两个日期之间的记录

1 个答案:

答案 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'