select dt,to_char(dt,'w') as w,to_char(dt,'day') as d,
希望这个能满足你的要求!
有几周,把每个月的最后一天拼成串传到如下SQL:
每周日期段没找到直接的,可以自己写个函数:
直到:某周加完后的日期,大于该月的最大天数,则取该月最大天数收尾,循环结束;
第二种方法是你建个存日期的表:
date week
......
里面存N年的日期,然后根据
然后直接根据这张表写SQL就直接获取几周,每周是几号到几号了...
最近遇到业务需求,需要按周统计数据.
思考再三想到可以使用每周周一来计算.
故写出如下获得系统当前月份所有周一的语句.
select * from (
--转化成周一去重
select distinct trunc(t.day,'iw') as mon from (
--获取本月所有日期集合
SELECT trunc(sysdate, 'mm') + LEVEL - 1 DAY
FROM DUAL
CONNECT BY trunc(sysdate, 'mm') + LEVEL - 1 =
last_day(trunc(sysdate))
)t
)a
--移除非本月的周一
where trunc(a.mon, 'mm') =? trunc(sysdate, 'mm')
ORDER BY MON
注:
trunc(sysdate,'iw') 语句可以获取本周周一的日期 (date类型)
trunc(sysdate,'iw') +1 可以获取本周周二的日期.
以此类推
(可以把sysdate换成其它时间)
[Oracle] 日期处理
计算标准
Oracle 里支持两种标准的时间, 一种是oracle 自身的标准, 另一种是ISO 的标准1. oralce 标准
①.)每个星期总是从周一开始,周日结束
Oracle中获取年份
① oralce 标准 - YYYY
oralce 标准获取年份的方式很简单:
你可能会想:
最后提醒一下大家: 如果从string 转换为日期, 如果只取这个日期的年份的话, 最好使用 YYYY.
Oracle 获取周数
要获取某一天是这一年的第几周, 同样有两种标准的区别:
① oracle 标准 - WW
不过这种标准在一般的公司使用的应该会比较少.
需要特别提醒的是:(本篇的精华)
年份 和 周数要使用同样的标准, 不要混着使用,比如 : YYIW -- oracle 的年份, ISO的周数IYWW
否则的话, 会得到一些错误的结果.
整整少了一年.
而且这种错误在不跨年的状况上你可能还不会发现, 一跨年, 发现又回到了一年前 ^^
以上就是土嘎嘎小编为大家整理的oracle怎么获取周数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!