--add_months(d,n):返回特定日期时间d之后或之前的n个月所对应的日期时间。n为正整数表示之后,n为负整数表示之前

select add_months(sysdate, -5) from dual;

输出:2010-08-26 13:24:28

 

--current_date:返回当前会话时区所对应的日期时间

select current_date from dual;

输出:2011-01-26 13:32:28

 

--current_timestamp:返回当前会话时区的日期时间

select current_timestamp from dual;

输出:26-1月 -11 01.35.25.996000 下午 +08:00

 

--localtimestamp:返回当前会话时区的日期时间

select localtimestamp from dual;

输出:26-1月 -11 02.10.39.209000 下午

 

--systimestamp:返回当前系统的日期时间及时区

select systimestamp from dual;

输出:26-1月 -11 02.50.46.030000 下午 +08:00

 

--to_timestamp(char[fmt[,'nls_param']])用于将符合特定日期和时间格式的字符串转变为timestamp类型

select to_timestamp('11-1月-26') from dual;

输出:11-1月 -26 12.00.00.000000000 上午

 

--to_timestamp_tz(char[fmt[,'nls_param'])用于将符合日期和时间格式的字符串转变为timestamp with time zone类型

select to_timestamp_tz('2011-01-26','YYYY-MM-DD') from dual;

输出:26-1月 -11 12.00.00.000000000 上午 +08:00

 

--dbtimezone:返回数据库所在时区

select dbtimezone from dual;

输出:+00:00

 

--sessiontimezone:返回当前会话所在时区

select sessiontimezone from dual;

输出:+08:00

 

--extract:用于从日期时间值中取得所需要的特定数据

select extract(year from sysdate) from dual;

输出:2011

 

--from_dz:用于将特定时区的timestamp值转变为timestamp with time zone值

select from_tz(to_timestamp('20091101', 'YYYYMMDD'), 'America/Sao_Paulo')
from dual;

第一次运行出现ORA-01878:在日期时间或间隔中没有找到指定的字段,然后换个日期比如:20110101,就不会有问题。如果有问题,可以使用下面的SQL语句可以避免夏令时造成的异常。

select from_tz(to_timestamp('20110101', 'YYYYMMDD'),
tz_offset(
'America/Sao_Paulo')) at time zone 'America/Sao_Paulo'
from dual;

输出:01-1月 -11 12.00.00.000000000 上午 AMERICA/SAO_PAULO

 

--last_day:返回特定日期所在月份的最后一天

select last_day(sysdate) from dual;

输出:2011-01-31 14:06:03

 

--months_between(d1,d2):返回日期d1和d2之间相差的月数;如果d1小于d2,则返回负数;如果日期d1和d2的天数相同或都是月底,则返回整数;否则Oracle以每月31天为准来计算结果的小数部分

select months_between(sysdate,
to_date(
'2011-2-26 10:00:00', 'yyyy-MM-dd hh24:mi:ss'))
from dual;

输出:-1

select months_between(sysdate,
to_date(
'2010-12-20 10:00:00', 'yyyy-MM-dd hh24:mi:ss'))
from dual;

输出:1.1993167562724

 

--new_time(date,zone1,zone2)返回时区一的日期时间所对应的时区二的日期时间

select new_time(sysdate, 'EST', 'PST') from dual;

输出:2011-01-26 11:19:59

 

--next_day(d,char):返回指定日期后的第一个工作日所对应的日期

select next_day(sysdate,'星期一') from dual;

输出:2011-01-31 14:23:03

 

--round(d[,fmt])返回日期时间的四舍五入结果。如果fmt指定年度,则7月1日为分界线;如果fmt指定月,则16日为分界线;如果指定天,则中午12:00时为分割线

select round(sysdate, 'year') from dual;

输出:2011-01-01

select round(sysdate, 'month') from dual;

输出:2011-02-01

select round(sysdate, 'day') from dual;

输出:2011-01-30

 

--trunc(d,[fmt])用于截取日期时间数据。如果fmt指定年度,则结果为本年度的1月1日;如果fmt指定月,则结果为本月1日

select trunc(sysdate, 'year') from dual;

输出:2011-01-01

select trunc(sysdate, 'month') from dual;

输出:2010-01-01

 

--tz_offset(time_zone_name||sessiontimezone||dbtimezone):用于返回特定时区与UTC(格林威治)相比的时区偏移

select tz_offset('EST') from dual;

输出:-05:00

 

 

 

 

作者: mxcjwl314 发表于 2011-01-26 15:15 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架