我在我的数据库中有一个添加表,我定义了一个字段日期,每个记录的日期格式为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
答案 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()
了解日期格式语法。