oracle 查询一周的第一天日期

项目的开发中需要用到一个查询周的第一天日期的函数 搜索N久很难找到解决的方法 只要自己写一个先用着 代码如下 a_week格式为 ‘YYYYIW‘ 如 ‘200801‘表示2008年的第一周 
周使用IW方式计算 如果一年当中第52周别之后至当年的12月31日之间,还有大于或等于4天的话,则定为当年的第53周,否则剩余这些天数被归为下一年的第1周

 1 CREATE OR REPLACE FUNCTION f_week_to_date(a_week varchar2) RETURN CHAR IS
 2   v_first_date   char(10);
 3   v_date_of_week number(1);
 4
 5 BEGIN
 6   select to_char(to_date(substr(a_week, 1, 4) || ‘0101‘, ‘yyyymmdd‘), ‘D‘)
 7     into v_date_of_week
 8     from dual;
 9   v_date_of_week := v_date_of_week - 1;
10   if v_date_of_week <= 4 then
11     select TO_CHAR(TO_DATE(SUBSTR(a_week, 1, 4) || ‘0101‘, ‘yyyymmdd‘) +
12                    SUBSTR(a_week, 5, 2) * 7 - 7 - v_date_of_week + 1,
13                    ‘yyyy-mm-dd‘)
14       into v_first_date
15       from dual;
16   else
17     select TO_CHAR(TO_DATE(SUBSTR(a_week, 1, 4) || ‘0101‘, ‘yyyymmdd‘) +
18                    SUBSTR(a_week, 5, 2) * 7  - v_date_of_week + 1,
19                    ‘yyyy-mm-dd‘)
20       into v_first_date
21       from dual;
22   end if;
23
24   return v_first_date;
25
26 END;

时间: 2024-08-25 15:45:46

oracle 查询一周的第一天日期的相关文章

这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询。这些是所有 Oracle 开发者都必备的技能,所以快快收藏吧!

日期/时间 相关查询 获取当前月份的第一天 运行这个命令能快速返回当前月份的第一天.你可以用任何的日期值替换 “SYSDATE”来指定查询的日期. SELECT TRUNC (SYSDATE, 'MONTH') "First day of current month"      FROM DUAL; 获取当前月份的最后一天 这个查询语句类似于上面那个语句,而且充分照顾到了闰年,所以当二月份有 29 号,那么就会返回 29/2 .你可以用任何的日期值替换 “SYSDATE”来指定查询的日

45个非常有用的 Oracle 查询语句小结

 这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有 Oracle 开发者都必备的技能,所以快快收藏吧. 原文地址:http://www.jbxue.com/db/19890.html 日期/时间 相关查询 1.获取当前月份的第一天 运行这个命令能快速返回当前月份的第一天.你可以用任何的日期值替换 "SYSDATE"来指定查询的日期. 复制代码代码如下: SELECT TRUNC

45 个非常有用的 Oracle 查询语句

这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有 Oracle 开发者都必备的技能,所以快快收藏吧! 日期/时间 相关查询 获取当前月份的第一天 运行这个命令能快速返回当前月份的第一天.你可以用任何的日期值替换 "SYSDATE"来指定查询的日期. ? 1 2 SELECT TRUNC (SYSDATE, 'MONTH') "First day of current mo

45个很实用的 Oracle 查询语句小结

?? 这里我们介绍的是 40+ 个很实用的 Oracle 查询语句,主要涵盖了日期操作,获取server信息.获取运行状态.计算数据库大小等等方面的查询. 这些是全部 Oracle 开发人员都必备的技能,所以快快收藏吧. 原文地址:http://www.jbxue.com/db/19890.html 日期/时间 相关查询 1.获取当前月份的第一天 执行这个命令能高速返回当前月份的第一天.你能够用不论什么的日期值替换 "SYSDATE"来指定查询的日期. 复制代码代码例如以下: SELE

Oracle取查询结果数据的第一条记录SQL

Oracle取查询结果数据的第一条记录SQL: select * from (select * from <table> order by <key>) where rownum=1; select * from (select * from <table> order by <key> desc) where rownum=1;

Oracle 查询出来的数据取第一条

Oracle 查询出来的数据取第一条 --------------------------------------------------------------------------- 转载自:http://www.itpub.net/thread-246442-1-1.html select * from (select * from <table> order by <key>) where rownum=1; select * from (select * from &l

获取某一个日期所在周的第一天

由于统计需要,先要获取指定日期来获取该日期所在周的第一天,从而算出所在周是哪一天至哪一天.先看下面代码,是获取当天的日期. DateTime.Today 如果不是当天,而是指定日期,需要把它转换为日期. DateTime dt = Convert.ToDateTime("2013-08-02"); 如果,你把指定的日期,是一个非规则的日期格式的字符串,那得使用DateTime.ParseExact来转换http://www.cnblogs.com/insus/p/3231007.htm

ORACLE查询当前资产状态,和另一个数据库联查,(查询重复数据中第一条),子查询作为字段查询

背景:ORACLE查询当前资产状态,包含资产信息(表1),资产维修状态(表2),资产报废状态(表3) 如下: 资产信息: 资产维修: 资产报废: 资产申请完了以后可以申请当前资产的维修和报废,其中维修有两个流程,一个是申请维修,然后维修.对应的都需要启动相应的流程去申请维修或者报废 流程表如下: 查询当前所有的资产以及对应的资产状态(维修状态,报废状态):sql语句如下: select t.ASSET_ID             as assetId,       t.ASSET_NAME  

ORACLE: 查询(看)表的主键、外键、唯一性约束和索引

ORACLE: 查询(看)表的主键.外键.唯一性约束和索引 1.查找表的所有索引(包括索引名,类型,构成列) select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 表名 2.查找表的主键(包括名称,构成列): select cu.* from user_co