1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

Oracle时间的具体应用的表现

2022-11-23 | 数据库 | gtxyzz | 606°c
A+ A-

下面的文章主要介绍的是Oracle时间的具体应用 ,Oracle时间之所以能在很短的时间内被人们广泛的应用,原因也是因为它独特的功能。以下的文章就是主要介绍Oracle时间的具体应用与其相关功能。

1、转换函数与date操作关系最大的就是两个转换函数:to_date(),to_char()

to_date() 作用将字符类型按一定格式转化为日期类型:

具体用法:to_date(”2004-11-27”,”yyyy-mm-dd”),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。

如;to_date(”2004-11-27 13:34:43”, ”yyyy-mm-dd hh24:mi:ss”) 将得到具体的Oracle时间

多种日期格式:

YYYY:四位表示的年份

YYY,YY,Y:年份的最后三位、两位或一位,缺省为当前世纪

MM:01~12的月份编号

MONTH:九个字符表示的月份,右边用空格填补

MON:三位字符的月份缩写

WW:一年中的星期

D:星期中的第几天

DD:月份中的第几天

DDD:年所中的第几天

DAY:九个字符表示的天的全称,右边用空格补齐

HH,HH12:一天中的第几个小时,12进制表示法

HH24:一天中的第几个小时,取值为00~23

MI:一小时中的分钟

SS:一分钟中的秒

SSSS:从午夜开始过去的秒数

to_char():将日期转按一定格式换成字符类型

SQL>selectto_char(sysdate,''yyyy-mm-ddhh24:mi:ss'')timefromdual; 
TIME 
2004-10-0815:22:58 

即把当前Oracle时间按yyyy-mm-dd hh24:mi:ss格式转换成字符类型

在oracle中处理日期大全

TO_DATE格式

Day: 
ddnumber12 
dyabbreviatedfri 
dayspelledoutfriday 
ddspthspelledout,ordinaltwelfth 
Month: 
mmnumber03 
monabbreviatedmar 
monthspelledoutmarch 
Year: 
yytwodigits98 
yyyyfourdigits1998

24小时格式下时间范围为: 0:00:00 – 23:59:59….

12小时格式下Oracle时间范围为: 1:00:00 – 12:59:59 ….

[ZT]日期和??函???

1.

日期和字符转换函数用法(to_date,to_char)

2.

selectto_char(to_date(222,''J''),''Jsp'')fromdual

显示Two Hundred Twenty-Two

3.

求某天是星期几

selectto_char(to_date(''2002-08-26'',''yyyy-mm-dd''),''day'')fromdual;

星期一

selectto_char(to_date(''2002-08-26'',''yyyy-mm-dd''),''day'',

''NLS_DATE_LANGUAGE=American'')fromdual; monday

设置日期语言

ALTERSESSIONSETNLS_DATE_LANGUAGE=''AMERICAN'';

也可以这样

TO_DATE(''2002-08-26'',''YYYY-mm-dd'',''NLS_DATE_LANGUAGE=American'')

4.

两个日期间的天数

selectfloor(sysdate-to_date(''20020405'',''yyyymmdd''))fromdual;

5. 时间为null的用法

selectid,active_datefromtable1 
UNION 
select1,TO_DATE(null)fromdual;

注意要用TO_DATE(null)

6.

a_datebetweento_date(''20011201'',''yyyymmdd'')andto_date(''20011231'',''yyyymmdd'')

那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。

所以,当Oracle时间需要精确的时候,觉得to_char还是必要的

7. 日期格式冲突问题

输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: ”01-Jan-01”

altersystemsetNLS_DATE_LANGUAGE=American 
altersessionsetNLS_DATE_LANGUAGE=American

或者在to_date中写

selectto_char(to_date(''2002-08-26'',''yyyy-mm-dd''),''day'',
''NLS_DATE_LANGUAGE=American'')fromdual;

注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,

可查看

select*fromnls_session_parameters 
select*fromV$NLS_PARAMETERS

8.

selectcount(*) 
from(selectrownum-1rnum 
fromall_objects 
whererownum<=to_date(''2002-02-28'',''yyyy-mm-dd'')-to_date(''2002- 
02-01'',''yyyy-mm-dd'')+1 
) 
whereto_char(to_date(''2002-02-01'',''yyyy-mm-dd'')+rnum-1,''D'') 
not 
in(''1'',''7'')

2002-02-01间除星期一和七的天数 ,在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).

本文来源:1818IP

本文地址:https://www.1818ip.com/post/11036.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。