在最后一次阿根廷独裁统治期间,我有一个失踪人士的纪念地点。
所以,我需要向那些“本周”被绑架的人展示,即:在今天任何一年的前一周内。它应该与一周的松散定义相匹配,只需提前三天,现在就可以了。
由于我可以使用我的任何已知库获得的日期给我一个星期的定义,包括年份(甚至是时间,如果我不够小心:)我甚至无法概念化查询。
这种情况有什么配方吗?你会怎么解决这个问题?
答案 0 :(得分:1)
在oracle中你可以使用to_char(date,'iw')来获得一年中的一周数。您可以使用它,或者如果您想要前后三天简单,您可以使用
trunc(dateFromEventsDatabase) between to_date(to_char(dateFromEventsDatabase, 'yyyy') ||to_char(sysdate,' mmdd'), 'yyyymmdd') - 3 and to_date(to_char(dateFromEventsDatabase, 'yyyy') ||to_char(sysdate,' mmdd'), 'yyyymmdd') + 3
对于MySQL,它应该看起来像这样
Date(dateFromEventsDatabase ) between date_from_str(concat(date_format(now(),' %Y'), date_format(dateFromEventsDatabase, '%m%d')),' %Y%m%d') - interval 3 day and date_from_str(concat(date_format(now(), '%Y'), date_format(dateFromEventsDatabase,' %m%d')), '%Y%m%d') + interval 3 day