Oracle SQL 获取本月内的所有周一

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle SQL 获取本月内的所有周一相关的知识,希望对你有一定的参考价值。

参考技术A 最近遇到业务需求,需要按周统计数据。

思考再三想到可以使用每周周一来计算。

故写出如下获得系统当前月份所有周一的语句。

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 trunc()函数的用法

select to_char(trunc(add_months(last_day(sysdate), -1) + 1), ‘yyyy-mm-dd’) “本月第一天”,
to_char(last_day(sysdate), ‘yyyy-mm-dd’) “本月最后一天”–Oracle trunc()函数的用法
/**************日期********************/
1.select trunc(sysdate) from dual  –2011-3-18  今天的日期为2011-3-18
2.select trunc(sysdate, ‘mm’)   from   dual  –2011-3-1    返回当月第一天.
3.select trunc(sysdate,’yy’) from dual  –2011-1-1       返回当年第一天
4.select trunc(sysdate,’dd’) from dual  –2011-3-18    返回当前年月日
5.select trunc(sysdate,’yyyy’) from dual  –2011-1-1   返回当年第一天
6.select trunc(sysdate,’d’) from dual  –2011-3-13 (星期天)返回当前星期的第一天
7.select trunc(sysdate, ‘hh’) from dual   –2011-3-18 14:00:00   当前时间为14:41
8.select trunc(sysdate, ‘mi’) from dual  –2011-3-18 14:41:00   TRUNC()函数没有秒的精确
 
/***************数字********************/
/*
TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为0。
TRUNC()函数截取时不进行四舍五入
*/
9.select trunc(123.458) from dual –123
10.select trunc(123.458,0) from dual –123
11.select trunc(123.458,1) from dual –123.4
12.select trunc(123.458,-1) from dual –120
13.select trunc(123.458,-4) from dual –0
14.select trunc(123.458,4) from dual  –123.458
15.select trunc(123) from dual  –123
16.select trunc(123,1) from dual –123
17.select trunc(123,-1) from dual –120
 
























以上是关于Oracle SQL 获取本月内的所有周一的主要内容,如果未能解决你的问题,请参考以下文章

php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期 转

SQL 查询获取本月所有客户的生日

SQL从日期范围内的同一表中的不同记录中获取多个项目的总和(ORACLE)

Sql获取周月年的首尾时间。

oracle 确定日期为本月第几周

oracle获取本月第一天和最后一天及Oracle trunc()函数的用法