【发布时间】:2014-08-07 14:17:08
【问题描述】:
我的查询例如是这样的:
$query = "... WHERE timestamp > :thisMonday AND timestamp <= :lastMonday";
$query_params[":thisMonday"] = date('Y-m-d', strtotime('monday this week'));
$query_params[":lastMonday"] = date('Y-m-d', strtotime('monday last week'));
通过这个查询,我得到了上周的结果(从上周的周一到上周的周日)。
我也为此找到了一个 MySQL 解决方案,但是它们要么不能正常工作(例如,上周一实际上是最后一个周一,而不是最后一周的周一),要么对于像这样的简单任务来说它们非常复杂。
我发现了这个: https://online.promoters.ro/web-design-development/mysql-curdate-and-now-vs-php-date-heavy-server-load.html 说总是使用 PHP。
还有这个:Faster to use MySQL's CURDATE() or PHP's date()? 这取决于。但我不确定最适合我的任务的方法是什么。
【问题讨论】:
-
首选 PHP 日期作为您的 MySQL 服务器,并且 PHP 不必设置相同的时间...还要注意时区。
-
是的,我知道时区。
-
结果应该是对的。你最好自己用你的数据检查不同方法的性能——如果性能是一个问题的话。
标签: php mysql sql performance date