0

好的,这就是我想要做的:

 $timezone1 = '+00:00';
 $timezone2 = '+08:00';

WHERE DATE(CONVERT_TZ(from_unixtime(comment_date), '$timezone1', '$timezone2')) =  DATE_SUB(CURRENT_DATE,INTERVAL 1 DAY)";

该行通过将输出转换为我正确的时区,为我提供了表格中昨天提交的总数。

现在我想对本周提交的总数做同样的事情:

 WHERE YEARWEEK(from_unixtime(comment_date), 1) =  YEARWEEK(CURRENT_DATE, 1)";

这给了我本周提交的总数,但时间偏移错误。如何让 $timezone1 和 $timezone2 进入这一行?我尝试了几种组合,但似乎没有任何效果,例如:

 WHERE (CONVERT_TZ(YEARWEEK(from_unixtime(comment_date), 1), '$timezone1', '$timezone2')) =  YEARWEEK(CURRENT_DATE, 1)";
4

1 回答 1

1

我不是 PHP 或 MySQL 开发人员,但听起来您应该只更改DATE原始代码YEARWEEK

WHERE YEARWEEK(CONVERT_TZ(from_unixtime(comment_date), '$timezone1', '$timezone2')) 
    =  YEARWEEK(CURRENT_DATE, 1)";

如果这不起作用,请提供有关它不起作用的方式的更多信息。

另请注意,您并没有真正提供时区 - 您提供的是偏移量。这意味着您的代码根据夏令时给出不一致的结果。这可能是也可能不是问题,具体取决于您的要求。

于 2012-11-03T09:25:21.840 回答