给定一年和一个日历周,我如何获得该周的星期二作为日期?
给定您year和cw(日历周)作为变量(例如,从SELECT语句中获取),您可以通过以下方式获取DATE:
year
cw
DATE_SUB( DATE_ADD(MAKEDATE(year, 1), INTERVAL cw WEEK), INTERVAL WEEKDAY( DATE_ADD(MAKEDATE(year, 1), INTERVAL cw WEEK) ) -1 DAY),
该短语DATE_ADD(MAKEDATE(year, 1), INTERVAL cw WEEK)重复;不想存储变量。SQL语句在MySQL上对我来说效果很好。
DATE_ADD(MAKEDATE(year, 1), INTERVAL cw WEEK)
更新: 只是为了澄清:WEEKDAY(DATE_ADD(MAKEDATE(year, 1), INTERVAL cw WEEK))将产生一周的第一天。从中减去一个数字(星期二为-1;星期三为-2,依此类推,将为您选择一周中的特定日期)。看这里。
WEEKDAY(DATE_ADD(MAKEDATE(year, 1), INTERVAL cw WEEK))