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)| |
秒……;
结束;