PHP/MYSQL中基于日期选择的最佳方式
我有一个数据库表,列DATETIME称为“entry_date”,例如PHP/MYSQL中基于日期选择的最佳方式,php,mysql,date,Php,Mysql,Date,我有一个数据库表,列DATETIME称为“entry_date”,例如 ID entry_date 1 2012-10-13 2 2012-10-14 3 2012-10-15 4 2012-10-20 5 2012-10-20 6 2012-10-21 在PHP/MYSQL中根据日期回显结果的最佳方法是什么,所以我只得到本周的结果,所以2012-10-15>2012-10-21,但显然我不能只编码出来,因为每天都在变化:)那么在PHP中你会怎么做呢?所以明天本周的条
ID entry_date
1 2012-10-13
2 2012-10-14
3 2012-10-15
4 2012-10-20
5 2012-10-20
6 2012-10-21
在PHP/MYSQL中根据日期回显结果的最佳方法是什么,所以我只得到本周的结果,所以2012-10-15>2012-10-21,但显然我不能只编码出来,因为每天都在变化:)那么在PHP中你会怎么做呢?所以明天本周的条件是2012-10-16>2012-10-22,使用
where date(`entry_date`) = curdate()
这个月,
where month(`entry_date`) = month(curdate())
and year(`entry_date`) = year(curdate())
本周
WHERE `entry_date`
BETWEEN (CURDATE() - Interval DAYOFWEEK(CURDATE()) day)
AND (CURDATE() - Interval DAYOFWEEK(CURDATE()) day + Interval 1 week)
以上查询有助于理解。但从性能的角度来看,这并不好。参见下面修改的一个。好多了
SET @s:=(CURDATE() - Interval DAYOFWEEK(CURDATE()) day)
SET @e:=(CURDATE() - Interval DAYOFWEEK(CURDATE()) day + Interval 1 week)
SELECT .... WHERE `entry_date` BETWEEN @s AND @e
这里DAYOFWEEK函数返回一个从1=Sunday开始的整数。因此,您的周数将被视为星期六作为开始日期。如果您想在星期一使用间隔添加+间隔2天
它也可以简化为以下内容。但它不支持任何一天作为一周的第一天。因此,它并非适用于所有文化
where yearweek(`entry_date`) = yearweek(curdate())
你的问题是什么?标题和最后一段似乎提出了不同的问题。你试过什么?我已经编辑了这个问题,想更好地解释我自己,我什么都没试过,因为我不知道。今年你能添加吗?@CarlRydings检查“本月”是如何计算的。可能还想提到函数
WEEK
,它按预期工作。@VincentSavard我忘了。但是WEEK
函数不允许您为每种文化定制一周的第一天。它只支持星期天和星期一。我一周的第一天是星期六除了这周的所有工作,我用。。。从条目中选择*,其中entry\u date
介于(CURDATE()-Interval DAYOFWEEK(CURDATE())day)和(CURDATE()-Interval DAYOFWEEK(CURDATE())+Interval+2周)…是这样吗,我需要它从周一开始,因为我在英国需要从周一15号到周日21号