0

我的数据库中有一个添加表,我为每条记录定义了一个字段日期,该记录具有日期格式的 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()

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

4

1 回答 1

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 日期语法与 MySQL 相同,则上述方法有效。如果不是,则需要专门指示 MySQL 如何解析它:

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

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

于 2012-10-11T15:14:52.707 回答