Oracle在时间/日期上的操作

Oracle中的日期有许多功能,如:

1、add_months()是用来增加或减少一个日期值的月数

date_value:= add_months(date_value,number_of_months)

例子:

SQL >选择add_months(SYSDATE,12)明年双;

明年

----------

11月04

SQL >选择add_months(SYSDATE,112)去年双;

去年

----------

13-3月13



SQL >

2、current_date()返回当前时区的当前日期

date_value:= current_date

15 SQL >列sessiontimezone

SQL >选择sessiontimezone,current_date双;

sessiontimezone current_da

-------------------------

+ 08:00 13-11月- 03

SQL >改变会话设置time_zone =11:00

2 /

会话已更改。

SQL >选择sessiontimezone,current_timestamp双;

sessiontimezone current_timestamp

离开

11:00 12-11月03 04.59.13.668000点11:

00

SQL >

3、current_timestamp()返回时区的时间戳数据类型在当前时区的当前日期

timestamp_with_time_zone_value:= current_timestamp({ timestamp_precision })

15 SQL >列sessiontimezone

SQL >列current_timestamp格式A36

SQL >选择sessiontimezone,current_timestamp双;

sessiontimezone current_timestamp

离开

+ 08:00 13-11月03 11.56.28.160000点+ 08:

00

SQL >改变会话设置time_zone =11:00

2 /

会话已更改。

SQL >选择sessiontimezone,current_timestamp双;

sessiontimezone current_timestamp

离开

11:00 12-11月03 04.58.00.243000点11:

00

SQL >

4、dbtimezone()返回时间区

varchar_value:= dbtimezone

SQL >选择dbtimezone双;

DBTIME

-----

- 07:00

SQL >

5,提取()查找日期或区间值的字段值

date_value:=提取物(date_field从{ datetime_value | interval_value })

SQL >选择提取(月SYSDATE)本月双;

本月

----------

十一

SQL >选择提取(从今年add_months(SYSDATE,36))3年从双;

3年了



二千零六

SQL >

6、last_day()返回包含日期参数,本月最后一天的日期

date_value:= last_day(date_value)

SQL >选择last_day(日期'2000-02-01 ')飞跃年从双;

飞跃年

----------

29-2月00

SQL >选择last_day(SYSDATE)本月最后一天双;

最后一天

----------

为月03

SQL >

7、localtimestamp()返回日期和时间的会议

timestamp_value:= localtimestamp

SQL >列localtimestamp格式A28

SQL >选择localtimestamp双;

localtimestamp

----------------------------

11月03 12.09.15.433000

下午

SQL >选择localtimestamp,current_timestamp双;

localtimestamp current_timestamp

----------------------------------------------------------------

03 12.09.31.006000 13-11 13-11月03 12.09.31.006000点+ 08:

下午00点。

SQL >改变会话设置time_zone =11:00;

会话已更改。

SQL >选择localtimestamp,to_char(SYSDATE,'dd-mm-yyyy HH:MI:SS是')SYSDATE双;

localtimestamp SYSDATE

----------------------------------------------------

03 05.11.31.259000 13-11-2003 12:11:31下午,12-11月

下午

SQL >

8、months_between()确定这两个日期之间的月数

number_value:= months_between(date_value,date_value)

SQL >选择months_between(系统日期,日期'1971-05-18)从双;

months_between(系统日期,日期'1971-05-18)

----------------------------------------

三百八十九点八五五一四三

SQL >选择months_between(系统日期,日期'2001-01-01)从双;

months_between(系统日期,日期'2001-01-01)

----------------------------------------

三十四点4035409

SQL >

9、next_day()给出了一个日期值,返回第一个时间日期,日期是由二参数指出,它应该返回相应的日期字符串。

描述:

单行日期函数

单行日期函数操作数据数据类型,大多数数据类型具有数据数据类型的参数,绝大多数返回值是数据数据类型的值。

10、add_months(,)

返回日期d在我数月后添加到结果中。我可以生成任意整数。如果我是一个小数,那么数据库将隐式转换为整数将在他后面,切断小数部分。

11、last_day()

函数返回包含日期d的月份的最后一天。

12、months_between(,)

返回D1和D2之间的月份数。如果D1和D2的日期相同,或者是一个月的最后一天,那么将返回一个整数,否则结果将包含一个分数。

13、new_time(,,)

D1是一种数据类型,当日期和时间在区TZ1是D,并返回的日期和时间,时区tz2.tz1和TZ2字符串。

14、next_day(,)

在返回到D的第一天,道指的第一天,道琼斯指数用一周的时间指定了一天的时间,使用的是当前会话中的语言,返回的时间分量与D的时间分量相同。

选择next_day(' '01-jan-2000,''monday)、第一星期一

15,圆({,})

The date D is rounded out in the format specified by FMT, and the FMT is a string.

16、syadate

函数没有参数,并返回当前日期和时间。

17、TRUNC({,})

返回指定日期D.采用FMT的单位

单线转换功能

单行转换函数用于操作多个数据类型,并在数据类型之间转换。

18、chartorwid()

C是一个字符串,转换的函数C到RWID数据类型。

选择从哪里test_id test_case rowid = chartorwid(''aaaa0saacaaaaliaaa)

19,转换({,})

C尾字符串,程序和资产是两个字符集。函数将字符串C程序的字符集设置为资产性质,以及资产的默认设置来设置数据库的字符。

20、hextoraw()

x是一个16进制字符串,函数将16个级别的x转换为原始数据类型。

21、rawtohex()

x是一个原始数据类型字符串,它将原始数据类转换成一个16进制数据类型。

22、rowidtochar()

该函数将ROWID数据类型char数据类型。

23、to_char(+,)

x是数据或数字数据类型。函数将x字符数据类型指定FMT格式。如果X是日期nlsparm = nls_date_language,它控制用于返回月份和日期的语言。如果x是一个数字nlsparm = nls_numeric_characters,它用于指定的十进制和第一千位分隔符,以及货币符号。

nls_numeric_characters =DG

24、to_date({,{,)

C是一个字符串,和FMT代表一个特殊格式的字符串,返回到C,在FMT格式显示,并nlsparm代表所使用的语言,函数将字符串C为日期数据类型。

25、to_multi_byte()

C表示一个字符串,它将C的加载字符转换为多字节字符。

26、to_number({,{,)

C是一个字符串,和FMT代表一个特殊格式的字符串,和函数的返回值是由fmt指定的格式显示。nlsparm表示的语言,和函数返回,C表示数。

27、to_single_byte()

将字符串C中的多字节字符转换为等效的单字节字符。此函数仅在数据库字符集同时包含单字节字符和多字节字符时使用。



1。日期区间操作

当前时间减去7分钟。

选择系统日期、系统日期间隔'7'minute双

当前时间减去7小时

选择系统日期间隔'7'hour双

当前时间减去7天

选择系统日期间隔'7'day双

当前时间减去七月的时间

选择系统日期、系统日期间隔'7'month双

目前的时间不到7年。

选择系统日期、系统日期间隔'7'year双

时间间隔乘以一个数

选择系统日期,系统日期8×区间'2'hour双

2。字符操作日期

选择系统日期,to_char(SYSDATE,'yyyy-mm-dd hh24:MI:SS)从双

选择系统日期,to_char(SYSDATE,'yyyy-mm-dd HH:MI:SS)从双

选择系统日期,to_char(SYSDATE,'yyyy-ddd HH:MI:SS)从双

选择系统日期,to_char(SYSDATE,'yyyy-mm防御性信息战HH:MI:SS)从双

指的是Oracle的相关文档(oracle901doc / / 服务器。901 a90125 / sql_elements4 .htm # 48515)

三.字符到日期操作

选择to_date('2003-10-17 21:15:37 ','yyyy-mm-dd hh24:MI:SS)从双

具体用法类似于to_char以上。

使用4。躯干/圆形功能

选择trunc(SYSDATE,'year)从双

选择trunc(SYSDATE)从双

选择to_char(trunc(SYSDATE,'yyyy),'yyyy)从双

5.oracle有毫秒型数据类型

返回当前时间、日期、小时、分钟和秒的毫秒数。

选择to_char(current_timestamp(5),'dd-mon-yyyy hh24:MI:SSxFF)从双;

-当前时间的第二毫秒,第二秒后的精度(最高= 9)可以被指定。

选择to_char(current_timestamp(9),'mi:SSxFF)从双;

6。程序运行的时间(ms)

声明

类型RC是游标;

l_rc RC;

l_dummy all_objects object_name分型;

l_start数默认dbms_utility.get_time;

开始

For I in 1.. 一千



打开l_rc为

选择object_name从all_objects| |

在object_id =我| |;

取l_rc为l_dummy;

近l_rc;

结束循环;

dbms_output.put_line

((dbms_utility。get_time-l_start)/ 100(圆形,2)| |

秒……;

结束;