oracle数据库怎么设周一为每周的第一天

oracle数据库怎么设周一为每周的第一天,第1张

select to_char(sysdate,'yyyy-mm-dd dy') from dual ;

你用下这个转换,截取下汉字一,变成你想要的第一天,因为具体业务不知道你要做什么,只能提供这么多,希望能够帮助到你

几周,把每个月的最后一天拼成串传到如下SQL:

select to_char(to_date('20111031','yyyymmdd'),'w') from dual;

每周日期段没找到直接的,可以自己写个函数:

1、获取1号是周几,如周4;

2、则1-4号为第一周,即1号+(7-4)天=4号;

3、循环:4+1=5号——4+7=11号为第二周;

直到:某周加完后的日期,大于该月的最大天数,则取该月最大天数收尾,循环结束;

第二种方法是你建个存日期的表:

date week

……

20110101

20110102

……

里面存N年的日期,然后根据

select to_char(to_date('20111031','yyyymmdd'),'w') from dual; 把week字段update进去;

然后直接根据这张表写SQL就直接获取几周,每周是几号到几号了。。。

SELECT to_char(SYSDATE,'yyyymmdd')-to_number(to_char(SYSDATE,'d')-1)-6,to_char(SYSDATE,'yyyymmdd')-to_number(to_char(SYSDATE,'d')-1) from dual

给你写两个获取吧 其他就between and就行

所在周周一

select next_day(to_date('2011-10-13', 'yyyy-MM-dd'),1)-6

from dual

这个月第一天

select trunc(to_date('2011-10-13', 'yyyy-MM-dd'),'month')

from dual

select case

when mod(1 + 7 - to_char(trunc(sysdate, 'MM'), 'D'), 7) +

trunc(sysdate, 'MM') + 28 - last_day(sysdate) > 0 then

0

else

1

end + 4

from dual

把其中sysdate替换为你的日期即可

如果想知道一个月有几个星期一,把mod括号中第一个1改为2即可,其他日期类推

使用:select

to_date('2015-07-27

16:28:20','yyyy-MM-dd

HH24:mi:ss')

from

dual;

不使用:select

to_date('2015-07-27

16:28:20','yyyy-MM-dd

HH24:mm:ss')

from

dual;

原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。

以上就是关于oracle数据库怎么设周一为每周的第一天全部的内容,包括:oracle数据库怎么设周一为每周的第一天、如何从oracle中查到每个月中有几周,每周的日期段从几号到几号、ORACLE 如何获取前一星期的日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9559721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存