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()函数没有秒的精确
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
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一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期 转