好的,这是我想要做的:

 $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)";

最佳答案

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

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


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

另请注意,您实际上并没有提供时区,而是提供了偏移量。这意味着您的代码将基于夏令时给出不一致的结果。根据您的要求,这可能是问题,也可能不是问题。

10-08 02:20