我有一个由sql查询驱动的报告,如下所示:
SELECT batch_log.userid,
batches.operation_id,
SUM(TIME_TO_SEC(ramses.batch_log.time_elapsed)),
SUM(ramses.tasks.estimated_nonrecurring + ramses.tasks.estimated_recurring),
DATE(start_time)
FROM batch_log
JOIN batches ON batch_log.batch_id=batches.id
JOIN ramses.tasks ON ramses.batch_log.batch_id=ramses.tasks.batch_id
JOIN protocase.tblusers on ramses.batch_log.userid = protocase.tblusers.userid
WHERE DATE(ramses.batch_log.start_time) > "2011-02-01"
AND ramses.batch_log.time_elapsed > "00:03:00"
AND DATE(ramses.batch_log.start_time) < now()
AND protocase.tblusers.active = 1
AND protocase.tblusers.userid NOT in ("ksnow","smanning", "dstapleton")
GROUP BY userid, batches.operation_id, date(start_time)
ORDER BY start_time, userid ASC
Run Code Online (Sandbox Code Playgroud)
由于这将与当前付费期的时间进行比较,因此会导致错误.
我们的支付期从星期日开始,第一个支付期是2011-02-01,我们的最后一个支付期从本月4日开始.如何将其放入我的where语句中以从查询中删除最近的支付期限?
编辑:所以现在我正在使用date_sub(now(),INTERVAL 2 WEEK),但我真的需要一周中的某一天(星期日),因为它是星期三它正在周三砍掉它.
Rev*_*nzo 36
特别:
select DATE_SUB(curdate(), INTERVAL 2 WEEK)
Run Code Online (Sandbox Code Playgroud)
两个星期前得到你.将DATE_SUB ...部分插入到您的sql中,你就可以了.
根据你的评论编辑:
看看DAYOFWEEK:
你可以做一些事情:
DATE_SUB(DATE_SUB(curdate(), INTERVAL 2 WEEK), INTERVAL 2 + DAYOFWEEK(curdate()) DAY)
Run Code Online (Sandbox Code Playgroud)
(我没有MySql实例来测试它...但基本上减去星期一之后的天数.)
| 归档时间: |
|
| 查看次数: |
23521 次 |
| 最近记录: |