Ian*_*ber 3 mysql sql datetime
我正在尝试选择按周工作的数据,我已经开始工作了,但我需要能够指定一个不同的日期作为一周的最后一天.我觉得有些事情需要接近INTERVAL (6-weekday('datetime'))但不确定.这种SQL高于我的工资等级($ 0):P
SELECT
sum(`value`) AS `sum`,
DATE(adddate(`datetime`, INTERVAL (6-weekday(`datetime`)) DAY)) AS `dt`
FROM `values`
WHERE id = '123' AND DATETIME BETWEEN '2010-04-22' AND '2010-10-22'
GROUP BY `dt`
ORDER BY `datetime`
Run Code Online (Sandbox Code Playgroud)
谢谢!
Run Code Online (Sandbox Code Playgroud)
select
sum(value) as sum,
CASE WHEN (weekday(datetime)<=3) THEN date(datetime + INTERVAL (3-weekday(datetime)) DAY)
ELSE date(datetime + INTERVAL (3+7-weekday(datetime)) DAY)
END as dt
FROM values
WHERE id = '123' and DATETIME between '2010-04-22' AND '2010-10-22'
GROUP BY dt
ORDER BY datetime
这确实看起来很邪恶但是,这个查询将为您提供一个value按星期四(工作日()返回3)结束的一周的总和.
如果你想改变一周结束的那天,你只需要在案例陈述中更换3,即如果你想要星期二,你会说它
CASE WHEN (weekday(datetime)<=1) THEN date(datetime + INTERVAL (1-weekday(datetime)) DAY)
ELSE date(datetime + INTERVAL (1+7-weekday(datetime)) DAY)
我希望这有帮助.