【发布时间】:2017-09-27 06:52:46
【问题描述】:
在 Oracle 中,我们从以下查询中获得周数:
select to_char(TO_DATE(SYSDATE,'DD-MM-YY'),'IW') from dual
我想获取给定周数的日期范围,
例如,第 1 周的日期范围是 01-01-2017 到 08-01-2017。
有没有办法获取给定周数的日期范围?
【问题讨论】:
-
也许这个问题可以帮到你:stackoverflow.com/questions/38180947/…
-
永远不要在已经是 DATE 的内容上使用
to_date。您会导致发生额外的隐式转换,该转换依赖于您的默认 NLS_DATE_FORMAT 参数 - 例如您的查询变为select to_char(to_date(to_char(sysdate, '<your NLS_DATE_FORMAT value>'), 'DD-MM-YY'), 'IW') from dual,如果您的 NLS_DATE_FORMAT 未设置为与您指定的格式相同,您很可能会遇到错误。为什么你仍然使用两位数的年份?年份有 4 位数字!您的查询应该是:select to_char(sysdate, 'iw') from dual -
那一年呢?请记住,例如 2017-01-01 是第 2016W52 周。那么您预计第 52 周的哪一天(未指定年份)?甚至您的“当前年份”也可能是 2016-12-26 或 2017-12-25
标签: oracle