在Oracle时间应用中如何转换函数
创始人
2024-06-28 19:51:38
0

本文主要介绍的是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相同语句的解析

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...