我在MySQL中有一个金融交易表,我正在尝试生成交易报告。鉴于业务运营的方式,财务日是凌晨4点 - 凌晨4点而不是午夜 - 午夜,所以不是按照Y-m-d对交易进行分组,而是我必须考虑午夜后发生的所有交易。
例如:
财务日是周一凌晨4点 - 周二凌晨4点。周二午夜之后发生的任何交易都需要在周一的销售中进行分类。
目前我的查询的前提是:
select from_unixtime(date, '%Y-%m-%d') as t_date from transactions group by t_date
我尝试在查询中使用if语句来确定当前行日期是在午夜之后但在凌晨4点之前,但无济于事。希望我可以在MySQL中使用它,而不必遍历PHP中的所有事务行。
非常感谢任何帮助!
答案 0 :(得分:0)
从交易时间减去4小时。按该值分组。 MySQL有date and time functions可以帮助你减法。
答案 1 :(得分:0)
如果你要求获得昨天的记录 以下是处理此问题的查询。
SELECT DATE_FORMAT( t.date, '%Y-%m-%d %k' ) as perDay
FROM `table` t
WHERE t.date BETWEEN DATE_ADD(CURDATE(), INTERVAL -1 day) AND CURDATE()
GROUP BY perDay
答案 2 :(得分:0)
如果你想在星期一凌晨4点到星期二凌晨3点之间进行所有交易,那么我认为你需要检查日期加时间也像“Y-m-d h:i:s”,