Tob*_*oby 5 mysql group-by date
目前我有这样的事情......
SELECT SUM(a.PaidSingle) AS PaidSingle,
DATE_FORMAT(a.TimeIn, '%a') AS weekDay
FROM Attendance AS a JOIN MemberDetail AS m ON m.id = a.MemberID
WHERE m.CardNumber = '$cardNo'
AND WEEK(a.TimeIn, 0) = WEEK(NOW(),0)
GROUP BY weekDay
ORDER BY a.TimeIn
Run Code Online (Sandbox Code Playgroud)
但是在写完这篇文章之后我才明白这将会影响前几年和今年.
我想简单地说,年份=今年,但当然是在12月开始的一周到1月结束,我将只有半个星期.
在MySQL中执行此操作的最佳方法是什么,还是应该使用基于PHP的解决方案?
您使用的是 mode=0 的 WEEK,它返回从 0-53 的周数 - 这会导致新的一年出现问题,一周的一部分可能是“YYYY53”,其余部分可能是“YYYZ00”(如果您愿意的话)。
如果您可以使用与DATE_FORMAT %V 和 %X 选项兼容的模式 2 :
DATE_FORMAT( NOW( ), "%X%V" )
Run Code Online (Sandbox Code Playgroud)
这些仅使用从 1 到 53 的周数,因此可以获取 YYYZ 年中某个日期的周 YYYY53 事件。
恐怕达不到你对美好的要求!
| 归档时间: |
|
| 查看次数: |
796 次 |
| 最近记录: |