繁体   English   中英

日期的Oracle周编号

[英]Oracle Week Number from a Date

我是Oracle的新手。 我已经弄清了我所需要的大部分东西,但是有一个领域使我绝对疯了。 看起来应该很简单,但我认为我的大脑已经炸裂,我无法理解。 我正在尝试生成销售报告。 我正在根据发票日期执行各种疯狂的操作。 我需要做的最后一件事是能够创建“周号”,以便我可以报告每周销售年与年的关系。 出于本报告的目的,我的会计年度正好是每年的12月1日(无论是星期几)。 例如,12月1日至7日将是第1周,依此类推。我可以使用各种功能来获取周号,但是所有这些功能都是基于日历年或ISO周。 我如何轻松地生成一个字段,该字段将为我提供自12月1日以来的星期几? 非常感谢你的帮助。

忘记默认的周数格式,因为它不适用于此特定要求。 我可能会从发票日期中减去之前的12月1日,然后除以7。四舍五入,加1,就可以了。

select floor(
  (
  trunc(invoiceDate) - 
  case 
  -- if December is current month, than use 1st of this month
  when to_char(invoiceDate, 'MM') = '12' then trunc(invoiceDate, 'MM')
  -- else, use 1st December of previous year
  else add_months(trunc(invoiceDate, 'YYYY'), -1)
  end
  ) / 7
) + 1
from dual;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM