oracle - 从周数获取一周的第一天

标签 oracle plsql

在 Oracle 中,是否有一种简单的方法可以根据周数获取一周的第一天?

例如,今天的日期是 12/4/2012。如果我运行: 从 Dual 选择 to_char(sysdate,'WW'); 它返回 49 作为周数。

我想做的是以某种方式返回 12/2/2012 作为第一天...给定第 49 周(假设星期日为一周的第一天)。

有什么想法吗?预先感谢您的帮助!

最佳答案

试试这个:

select next_day(max(d), 'sun') requested_sun
  from (select to_date('01-01-2012', 'dd-mm-yyyy') + (rownum-1) d from dual connect by level <= 366)
 where to_char(d, 'ww') = 49-1;

只需设置您的年份 to_date('01-01-2012' 和第 1 周 49-1(如适用)。

2008 年第 49 周的星期日?

SQL> select next_day(max(d), 'sun') requested_sun
  2    from (select to_date('01-01-2008', 'dd-mm-yyyy') + (rownum-1) d from dual connect by level <= 366)
  3   where to_char(d, 'ww') = 49-1;

REQUESTED
---------
07-DEC-08

和 2012 年

SQL> select next_day(max(d), 'sun') requested_sun
  2    from (select to_date('01-01-2012', 'dd-mm-yyyy') + (rownum-1) d from dual connect by level <= 366)
  3   where to_char(d, 'ww') = 49-1;

REQUESTED
---------
02-DEC-12

关于oracle - 从周数获取一周的第一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13706558/

相关文章:

sql - 在什么条件下 ROWNUM=1 会显着提高 "exists"syle 查询的性能

mysql - sql 中的重复表并添加新列

oracle - 带有 Oracle 的 Jboss XA 数据源无法打开连接

oracle - SQL避免在select语句中调用同一个函数两次

java - 基于几乎所有列进行查询时如何最有效地访问表?

mysql - 使用 Oracle Devloper 的 Scratch Pad 将 MySQL 转换为 PL/SQL 的选项去哪儿了?

带有换行符的 Oracle SQL VARCHAR 列

java - 使用 Java 从 Oracle 数据库读取特殊字符 ( æ ø å )

oracle - 如何重新编译已使用 Oracle 10g 的 Wrap 实用程序加密的无效 PLSQL 包?

Oracle PL/SQL : Conditional Where Clause