在Oracle时间应用中如何转换函数

数据库 Oracle
以下的文章是对Oracle时间的实际应用中的转换函数的实际操作步骤的介绍,以下就是文章的具体内容的描述,望你会有所收获。

本文主要介绍的是Oracle时间的实际应用中的转换函数和date实际操作的相关关系,我们都知道转换函数和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():将日期转按一定格式换成字符类型

 

  1. SQL> select to_char(sysdate,''yyyy-mm-dd hh24:mi:ss'') time from dual;  
  2. TIME  
  3. 2004-10-08 15:22:58 

 

 

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

在oracle中处理日期大全

TO_DATE格式

 

  1. Day:   
  2. dd number 12   
  3. dy abbreviated fri   
  4. day spelled out friday   
  5. ddspth spelled out, ordinal twelfth   
  6. Month:   
  7. mm number 03   
  8. mon abbreviated mar   
  9. month spelled out march   
  10. Year:   
  11. yy two digits 98   
  12. yyyy four digits 1998 

 

 

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

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

 

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

1.

 

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

 

2.

 

  1. select to_char( to_date(222,''J''),''Jsp'') from dual 

 

显示Two Hundred Twenty-Two

3.

求某天是星期几

 

 

  1. select to_char(to_date(''2002-08-26'',''yyyy-mm-dd''),''day'') from dual;  

 

星期一

 

 

  1. select to_char(to_date(''2002-08-26'',''yyyy-mm-dd''),
    ''day'',''
    NLS_DATE_LANGUAGE = American'') from dual;   
  2. monday  

 

 

设置日期语言

 

 

  1. ALTER SESSION SET NLS_DATE_LANGUAGE=''AMERICAN'';  

 

也可以这样

 

 

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

 

4.

两个日期间的天数

 

 

  1. select floor(sysdate - to_date(''20020405'',''yyyymmdd'')) from dual; 

 

5. 时间为null的用法

 

  1. select id, active_date from table1   
  2. UNION   
  3. select 1, TO_DATE(null) from dual; 

 

 

注意要用TO_DATE(null)

6.

 

  1. a_date between to_date(''20011201'',''yyyymmdd'') 
  2. and to_date(''20011231'',''yyyymmdd'')  

 

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

 

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

 

7. 日期格式冲突问题

 

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

 

 

  1. alter system set NLS_DATE_LANGUAGE = American   
  2. alter session set NLS_DATE_LANGUAGE = American  

 

 

或者在to_date中写

 

 

  1. select to_char(to_date(''2002-08-26'',''yyyy-mm-dd''),
    ''day'',''
    NLS_DATE_LANGUAGE = American'') from dual;  

 

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

 

可查看

 

 

q查找2002-02-28至2002-02-01间除星期一和七的天数

在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).

 

9.

 

  1. select months_between(to_date(''01-31-1999'',''MM-DD-YYYY''),   
  2. to_date(''12-31-1998'',''MM-DD-YYYY'')) "MONTHS" FROM DUAL;   
  3. 1  
  4. select months_between(to_date(''02-01-1999'',''MM-DD-YYYY''),   
  5. to_date(''12-31-1998'',''MM-DD-YYYY'')) "MONTHS" FROM DUAL;  
  6. 1.03225806451613   
  7.  

10. Next_day的用法

 

 

  1. Next_day(date, day)  
  2. Monday-Sunday, for format code DAY   
  3. Mon-Sun, for format code DY   
  4. 1-7, for format code D  

 

 

以上的相关内容就是对Oracle时间的介绍,望你能有所收获。 

文章出自: http://www.programbbs.com/doc/class10-3.htm

【编辑推荐】

  1. Oracle 语句的优化规则中的相关项目
  2. Oracle实例如何创建?
  3. Oracle sql 性能如何进行调整
  4. Oracle sql 性能的优化调整的2大步骤
  5. 对Oracle SQL相同语句的解析
责任编辑:佚名 来源: programbbs
相关推荐

2010-04-01 10:55:48

Oracle 数据类型

2010-11-15 09:55:35

Oracle转换函数

2018-05-21 08:52:15

Linux应用程序启动时间

2010-05-06 09:19:03

Oracle表

2010-03-15 10:24:20

Python函数变量

2011-04-11 14:45:15

Oracle表系统时间

2011-08-03 17:08:43

iPhone Sqlite 时间

2010-04-28 12:33:36

Oracle自定义函数

2021-05-21 07:59:40

应用程序设计动态库函数

2010-10-25 15:20:23

Oracle数据转换函

2010-10-25 17:17:50

Oracle日期转换函

2022-03-24 10:23:51

时间轮方法任务

2017-10-17 16:23:58

函数式编程ReduxReact

2010-03-29 11:06:22

Oracle Spat

2011-05-17 10:49:55

OracleSQL Server

2011-08-22 15:47:27

Oracle临时表存储过程

2022-04-18 08:34:29

回调函数命令解析

2010-05-06 16:02:42

Oracle SQL

2010-03-30 19:19:13

Oracle产品

2010-04-30 08:47:22

Oracle分页存储
点赞
收藏

51CTO技术栈公众号