从日期字段在varchar中的日期匹配数据库中获取记录

时间:2012-10-11 15:06:07

标签: php mysql date

我在我的数据库中有一个添加表,我定义了一个字段日期,每个记录的日期格式为varchar和srores日期类型。我使用now()函数在日期字段中插入值,我的日期字段的格式为

  

2012-10-07 14:00:54

我想获取按今天,昨天,上周和上个月的日期匹配的记录,但我不知道该怎么做。我搜索谷歌很多,我尝试了很多功能,但它不工作我运行以下查询

select * from adds where date(date_sub(now(), interval 0 day))
   select * from adds where date(date_sub(now(), interval 1 day))
   select * from adds where date(date_sub(now(), interval 7 day))
   select * from adds where date(date_sub(now(), interval 31 day))

所有这些都不起作用,我也试过

select * from adds where date=curdate()
  select * from adds where date=current_date()

请指导我如何获取记录。 我正在使用localhost服务器xampp win32 1.7.7

1 个答案:

答案 0 :(得分:0)

  

我想获取今天,昨天,最后一天的匹配记录   一周和上个月,但我不知道该怎么做。

然后你需要SELECT那些日期在界限之间的记录:

SELECT * FROM adds WHERE `date`
      BETWEEN
          DATE(DATE_SUB(NOW(), INTERVAL 7 DAY))
      AND DATE(DATE_SUB(NOW(), INTERVAL 0 DAY))
;

以上内容应该在上周给你,结束于今天00:00开始。

注意:如果varchar date语法与MySQL相同,则上述方法有效。如果不是,您需要专门指示MySQL如何解析它:

  WHERE STR_TO_DATE(`date`,'%Y:%d:%m %H:%i:%s') BETWEEN..

请参阅date_format()了解日期格式语法。