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

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

君子好学,自强不息!

Oracle 处理日期的实际操作中你是否对其有不解之处?如果你对Oracle 处理日期的实际操作很感兴趣的话,你就可以浏览以下相关的内容,望你会在Oracle 处理日期的实际相关应用操作有所了解。

将数字转换为任意时间格式.如秒:需要转换为天/小时

SELECTto_char(floor(TRUNC(936000/(60*60))/24))

天’||to_char(mod(TRUNC(936000/(60*60)),24))’小时’ FROM DUAL

TO_DATE格式

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

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

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

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  

在Oracle 处理日期中日期语言的设置

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点之前是不包含在这个范围之内的。

所以,当时间需要精确的时候,觉得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 

本文来源:1818IP

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

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

发表评论

必填

选填

选填

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