Oracle时间日期加减计算

上月末的日期:select last_day(add_months(sysdate, -1)) from dual;
本月的最后一秒:select trunc(add_months(sysdate,1),'mm') - 1/24/60/60 from dual
本周星期一的日期:select trunc(sysdate,'day')+1 from dual

年初至今的天数:select ceil(sysdate - trunc(sysdate, 'year')) from dual;

今天是今年的第几周 :select to_char(sysdate,'fmww') from dual
今天是本月的第几周:select to_char(sysdate,'ww') - to_char(trunc(sysdate,'mm'),'ww') + 1 as "weekofmon" from dual

本月的天数
select to_char(last_day(sysdate),'dd') days from dual
今年的天数
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual
下个星期一的日期
select next_day(sysdate,'monday') from dual

============================================

--计算工作日方法

create table t(s date,e date);
alter session set nls_date_format = 'yyyy-mm-dd';
insert into t values('2003-03-01','2003-03-03');
insert into t values('2003-03-02','2003-03-03');
insert into t values('2003-03-07','2003-03-08');
insert into t values('2003-03-07','2003-03-09');
insert into t values('2003-03-05','2003-03-07');
insert into t values('2003-02-01','2003-03-31');

-- 这里假定日期都是不带时间的,否则在所有日期前加trunc即可。
select s,e,e-s+1 total_days,
trunc((e-s+1)/7)*5 + length(replace(substr('01111100111110',to_char(s,'d'),mod(e-s+1,7)),'0','')) work_days
from t;

-- drop table t;

 

================================================================================

判断当前时间是上午下午还是晚上

select case
when to_number(to_char(sysdate,'hh24')) between 6 and 11 then '上午'
when to_number(to_char(sysdate,'hh24')) between 11 and 17 then '下午'
when to_number(to_char(sysdate,'hh24')) between 17 and 21 then '晚上'
end
from dual;

 

时间: 2024-11-28 21:20:05

Oracle时间日期加减计算的相关文章

sql 时间日期加减处理函数

--获取当前时间 Select getdate() --获取当前年月日 YY代表年,MM代表月,DD代表日,hh代表时,ss代表秒 /*  代码如下 复制代码 year yy 1753--9999 quarter qq 1--4 month mm 1--12 day of year dy 1--366 day dd 1--31 week wk 1--53 weekday dw 1--7(Sunday--Saturday) hour hh 0--23 minute mi 0--59 second

日期加减-c++如何实现时间的加减操作?

问题描述 c++如何实现时间的加减操作? c++如何实现时间的加减操作,比如有一个时间2015-03-30 23:20:20,我想减去一个月,加上2小时,如何实现??望高手赐教,代码越简洁越好! 解决方案 分别单独处理时间和日期 如果时间处理时,发现要对日期进行变化,则调用日期变化的功能.日期变化的功能,其实也不难.就是麻烦. 需要判断是否是闰年?然后按 1.3.5.7.8.10.12 和 除了2月之外的其它月进行处理. 解决方案二: 可以自己写一个时间类,然后重载加减运算符 解决方案三: CT

php时间日期对比与日期加减例子

功能需求 文章发布时段操作,要是在白天时间就可以发布,晚上则阻止.我们假设白天时间段从早上七点(七点估计好多人都没睡醒)到下午六点,那么我们可以这么下  代码如下 复制代码 /**  * PHP时间比较  * 琼台博客  */ // 定义开始时间,注意时间是字符串格式,所以必须用引号引起来否则报错别找我,另外里边的冒号必须是英文冒号 $start_time = '7:00';   // 定义结束时间,千万别问我下午六点为何写成十八点,我会建议你重读小学 $end_time  = '18:00';

php 常用日期相函数[日期加减,两日期之差,日期转换时间截]

下面这些代码是一些常用的日期处理函数了,可以两个时间的日期加减,两日期之差,日期转换时间截等. echo date('Y-m-d',strtotime('+1 d',strtotime('2009-07-08')));//日期天数相加函数 echo date("Y-m-d",'1246982400'); echo '<br>'; echo date("Y-m-d",'1279123200'); die(); $d   =   "2009-07-

PHP中的日期加减方法示例_php实例

几乎所有从事程序开发的程序员都遇到时间处理问题,PHP开发也一样,幸运的是PHP提供了很多关于日期时间函数.只要经常使用这些函数,搭配使用,日期时间处理上就熟能生巧了. 今天要讲的这个例子,需求是这样的.得知某个日期时间, 如:2012-04-25 10:10:00 我要在这个日期时间的基础上加上5个月并返回处理后的日期 结果:2012-04-25 10:10:00 加5个月等于 2012-09-25 10:10:00 这个需求看似简单,但还是有点棘手,因为PHP没有直接提供yyyy-mm-dd

数据库 日期加减处理_MsSql

在实际的处理中,还有一种比较另类的日期加减处理,就是在指定的日期中,加上(或者减去)多个日期部分,比如将2005年3月11日,加上1年3个月11天2小时.对于这种日期的加减处理,DATEADD函数的力量就显得有点不够. 要实现多个日期部分的加减处理,最主要的就是把要加减的日期字符分解,然后根据分解的结果在指定日期的对应日期部分加上相应的值,其难点在于如何分解日期字符,以及判断分解后的日期字符属于哪个日期部分.要顺利地分解出日期字符的话,首先要规定日期加减的日期字符的格式,可以这样定义: y-m-

数据库 日期加减处理

在实际的处理中,还有一种比较另类的日期加减处理,就是在指定的日期中,加上(或者减去)多个日期部分,比如将2005年3月11日,加上1年3个月11天2小时.对于这种日期的加减处理,DATEADD函数的力量就显得有点不够. 要实现多个日期部分的加减处理,最主要的就是把要加减的日期字符分解,然后根据分解的结果在指定日期的对应日期部分加上相应的值,其难点在于如何分解日期字符,以及判断分解后的日期字符属于哪个日期部分.要顺利地分解出日期字符的话,首先要规定日期加减的日期字符的格式,可以这样定义: y-m-

asp.net 获取当前时间做加减操作

问题描述 asp.net 获取当前时间做加减操作 asp.net 获取当前时间做加减操作 DateTime.Now.ToString("yyyy-MM-dd"); 获取当前时间在这基础上减7天 或者一个月 或者 一季 解决方案 AddDays(-7) AddMonth(-1) 季度这个没有,可以这么写 AddMonth(1 - DateTime.Now.Month % 3) 解决方案二: ASP.NET时间操作asp.net获取当前时间asp.net获取当前时间

PHP 日期 加减 月数,天数,周数,小时,分,秒等等

其实就是strtotime 这个内置函数 //PHP 日期 加减 周 date("Y-m-d",strtotime("2013-11-12 +1 week")) //PHP 日期 加减 天数 date("Y-m-d",strtotime("2013-11-12 12:12:12 +1 day")) //PHP 日期加减小时 date("Y-m-d h:i:s",strtotime("2013-11