torrey

oracle sql 日期加减方法

oracle sql 日期加减方法
最近需要写一个时间的相加减的sql语句,于是就上网看了下相关的知识,然后自己整理了下一些 关于时间加减和获取相关时间的知识!
加法
select sysdate,add_months(sysdate,12) from dual;       --加1年
select sysdate,add_months(sysdate,1) from dual;        --加1月
select sysdate,to_char(sysdate+7,\'yyyy-mm-dd HH24:MI:SS\') from dual;   --加1星期
select sysdate,to_char(sysdate+1,\'yyyy-mm-dd HH24:MI:SS\') from dual;   --加1天
select sysdate,to_char(sysdate+1/24,\'yyyy-mm-dd HH24:MI:SS\') from dual;  --加1小时
select sysdate,to_char(sysdate+1/24/60,\'yyyy-mm-dd HH24:MI:SS\') from dual;  --加1分钟
select sysdate,to_char(sysdate+1/24/60/60,\'yyyy-mm-dd HH24:MI:SS\') from dual;  --加1秒
减法则相反用减的就OK了
但是我发现一个问题,就是我用系统日期减去系统日期会等于0,但是如果是减去一个to_date()的日期格式就不是等于0了,我也不知道为什么o(╯□╰)o
select sysdate,sysdate-sysdate from dual;--结果是:2011-7-13 16:45:35 和 0

一起jquery,17jquery


select sysdate,sysdate-to_date(\'2011-7-1 16:28:00\',\'yyyy-mm-dd HH24:MI:SS\') from dual;
--结果是2011-7-13 16:46:31  和  12.0128587962963
日期与日期之间不能相加 ,但是日期与数字就可相加SQL> select sysdate+1 from dual; 
日期与日期可以相减 SQL>  select  sysdate-sysdate from dual; 
Last_Day(D)返回包含日期D的月份的最后一天的日期,这个要注意时间要是默认格式的,不然会报错的!
select * from nls_session_parameters where parameter=upper(\'nls_date_format\');--查出系统默认格式是:DD-MON-RR
select last_day(\'02-12月-09\') from dual; --正确(为什么要加个“月”,我也不知道,反正就是那个“DD-MON-RR”格式的就是要这样写)
select last_day(\'20090202\') from dual;--错误,不能自动将字符转换成date
alter session set nls_date_format=\'yyyymmdd\'; --修改默认格式
select last_day(\'20090202\') from dual;--设置了默认格就可以运行了

Months_Between(D1,D2)返回D1、D2之间的月份数目,D1<D2那么结果为正数,反之为负
select Months_Between(\'02-12月-09\',\'02-2月-09\') from dual; --结果:10

17jquery.com


select Months_Between(\'02-12月-09\',\'02-2月-09\') from dual; --结果:-10

New_Time(D,Z1,Z2)        返回时区Z1里时间为D时Z2时区的时间
select New_Time(\'02-12月-11\',\'AST\',\'HST\') from dual;--返回:2011-12-1 18:00:00
在区域 z1 中的日期和时间为 d 时,函数将返回区域 z2 中的日期和时间。变元 z1 和 z2 可以是以下任何一个文本字符串:
AST 或 ADT 大西洋标准时间或夏令时间
BST 或 BDT 白令海标准时间或夏令时间
CST 或 CDT 中央标准时间或夏令时间
EST 或 EDT 东部标准时间或夏令时间
GMT 格林威治标准时间
HST 或 HDT 阿拉斯加 - 夏威夷标准时间或夏令时间
MST 或 MDT 山区标准时间或夏令时间
NST 纽芬兰标准时间
PST 或 PDT 太平洋标准时间或夏令时间
YST 或 YDT 育空标准时间或夏令时间

Next_Day(D,S)        返回满足条件S的下一天      S为星期几
Round(D,F)        日期D按照格式F进行舍入
Sysdate        返回数据库当前时间

内容来自17jquery


Trunc(D,F)        按照格式F截断时间D

分类:

技术点:

相关文章: