【问题标题】:MySQL curdate() and now() vs PHP date()MySQL curdate() 和 now() vs PHP date()
【发布时间】: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


【解决方案1】:

只是给你一个答案,即使可能是错误的,这只是我的意见。

您提供的第一个链接:https://online.promoters.ro/web-design-development/mysql-curdate-and-now-vs-php-date-heavy-server-load.html;我认为完全有偏见,没有提供任何证据,除了导致服务器问题外,我真的什么也没说;但我认为他在测试时没有考虑其他数据,或者这可能是一个不同的问题。也没有写这篇文章的日期,所以我们只能猜测他使用的 MySQL 服务器版本。

我的意见是保留原始语言的日期格式。所以从 Php -> MySQL -> Php.我认为这实际上可能是最好和最安全的方式。另一种观点是更容易操纵时间变量。

【讨论】:

    猜你喜欢
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多