oracle中获取一周,oracle数据库获取自然周,按照1月1号到第一个周日为第一周

文章为转载,之后找不到原博地址了,sorry

to_week_by_year(to_date('2015-1-1', 'yyyy-MM-dd'))

CREATE OR REPLACE FUNCTION to_week_by_year (sdate IN DATE) RETURN NUMBER IS Result NUMBER ; BEGIN     SELECT         TO_CHAR (             DECODE (                 SIGN (                     (                         TO_DATE (                             TO_CHAR (sdate, 'yyyymmdd'),                             'yyyymmdd'                         ) + TO_NUMBER (                             DECODE (                                 TO_CHAR (                                     TRUNC (                                         TO_DATE (                                             TO_CHAR (sdate, 'yyyymmdd'),                                             'yyyymmdd'                                         ),                                         'yyyy'                                     ),                                     'd'                                 ),                                 '1',                                 '8',                                 TO_CHAR (                                     TRUNC (                                         TO_DATE (                                             TO_CHAR (sdate, 'yyyymmdd'),                                             'yyyymmdd'                                         ),                                         'yyyy'                                     ),                                     'd'                                 )                             )                         ) - 2                     ) - LAST_DAY (                         TO_DATE (                             TO_CHAR (sdate, 'yyyymmdd'),                             'yyyymmdd'                         )                     )                 ),                 1,                 LAST_DAY (                     TO_DATE (                         TO_CHAR (sdate, 'yyyymmdd'),                         'yyyymmdd'                     )                 ),                 (                     TO_DATE (                         TO_CHAR (sdate, 'yyyymmdd'),                         'yyyymmdd'                     ) + TO_NUMBER (                         DECODE (                             TO_CHAR (                                 TRUNC (                                     TO_DATE (                                         TO_CHAR (sdate, 'yyyymmdd'),                                         'yyyymmdd'                                     ),                                     'yyyy'                                 ),                                 'd'                             ),                             '1',                             '8',                             TO_CHAR (                                 TRUNC (                                     TO_DATE (                                         TO_CHAR (sdate, 'yyyymmdd'),                                         'yyyymmdd'                                     ),                                     'yyyy'                                 ),                                 'd'                             )                         )                     ) - 2                 )             ),             'ww'         ) INTO result     FROM         dual ; RETURN Result ;     END to_week_by_year ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值