Oracle to_date(...)函数相关

原创 2013年12月04日 15:11:26

在Oracle数据库中,Oracle to_date()函数是我们经常使用的函数,下面就为您详细介绍Oracle to_date()函数的用法,希望可以对您有所启迪。

to_date()与24小时制表示法及mm分钟的显示:

一、在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。

  1. select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual; 

如:
原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。

  1. select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual; 

二、另要以24小时的形式显示出来要用HH24
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份  oracle中的to_date参数含义

1.日期格式参数 含义说明  
D 一周中的星期几  
DAY 天的名字,使用空格填充到9个字符  
DD 月中的第几天  
DDD 年中的第几天  
DY 天的简写名  
IW ISO标准的年中的第几周  
IYYY ISO标准的四位年份  
YYYY 四位年份  
YYY,YY,Y 年份的最后三位,两位,一位  
HH 小时,按12小时计  
HH24 小时,按24小时计  
MI 分  
SS 秒  
MM 月  
Mon 月份的简写  
Month 月份的全名  
W 该月的第几个星期  
WW 年中的第几个星期  1.日期时间间隔操作 
当前时间减去7分钟的时间 
select sysdate,sysdate - interval ’7’ MINUTE from dual 
当前时间减去7小时的时间 
select sysdate - interval ’7’ hour from dual 
当前时间减去7天的时间 
select sysdate - interval ’7’ day from dual 
当前时间减去7月的时间 
select sysdate,sysdate - interval ’7’ month from dual 
当前时间减去7年的时间 
select sysdate,sysdate - interval ’7’ year from dual 
时间间隔乘以一个数字 
select sysdate,sysdate - 8 *interval ’2’ hour from dual

2.日期到字符操作

  1. select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual   
  2. select sysdate,to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) from dual   
  3. select sysdate,to_char(sysdate,’yyyy-ddd hh:mi:ss’) from dual   
  4. select sysdate,to_char(sysdate,’yyyy-mm iw-d hh:mi:ss’) from dual   

参考oracle的相关文档(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)

3. 字符到日期操作

  1. select to_date(’2003-10-17 21:15:37’,’yyyy-mm-dd hh24:mi:ss’) from dual  

具体用法和上面的to_char差不多。

4. trunk/ ROUND函数的使用

  1. select trunc(sysdate ,’YEAR’) from dual   
  2. select trunc(sysdate ) from dual   
  3. select to_char(trunc(sysdate ,’YYYY’),’YYYY’) from dual  

5.oracle有毫秒级的数据类型 
--返回当前时间 年月日小时分秒毫秒 
select to_char(current_timestamp(5),’DD-MON-YYYY HH24:MI:SSxFF’) from dual; 
--返回当前 时间的秒毫秒,可以指定秒后面的精度(最大=9) 
select to_char(current_timestamp(9),’MI:SSxFF’) from dual;

Oracle中几个关于日期方面的SQL实例

SQL>   select   to_char(sysdate,'YYYYMMDD   W   HH24:MI:SS')   from   dual;   
    
  TO_CHAR(SYSDATE,'YY   
  -------------------   
  20030327   4   18:16:09   
    
  SQL>   select   to_char(sysdate,'W')   from   dual;   
    
  T   
  -   
  4 

№2:取得当前日期是一个星期中的第几天,注意星期日是第一天

  SQL>   select   sysdate,to_char(sysdate,'D')   from   dual;   
    
  SYSDATE       T   
  ---------   -   
  27-MAR-03   5  

类似:

select   to_char(sysdate,'yyyy')   from   dual;   --年   
  select   to_char(sysdate,'Q')   from   dual;           --季   
  select   to_char(sysdate,'mm')   from   dual;       --月   
  select   to_char(sysdate,'dd')   from   dual;       --日   

№4:如果一个表在一个date类型的字段上面建立了索引,如何使用

alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'


№5: 得到当前的日期
select sysdate from dual;

№6: 得到当天凌晨0点0分0秒的日期
select trunc(sysdate) from dual;

-- 得到这天的最后一秒
select trunc(sysdate) + 0.99999 from dual;

-- 得到小时的具体数值
select trunc(sysdate) + 1/24 from dual;

select trunc(sysdate) + 7/24 from dual;

№7:得到明天凌晨0点0分0秒的日期

select trunc(sysdate+1) from dual;

select trunc(sysdate)+1 from dual;


№8: 本月一日的日期
select trunc(sysdate,'mm') from dual;


№9:得到下月一日的日期
select trunc(add_months(sysdate,1),'mm') from dual;

№10:返回当前月的最后一天?
select last_day(sysdate)  from dual;        
select last_day(trunc(sysdate))  from dual;  
select trunc(last_day(sysdate))  from dual;
select trunc(add_months(sysdate,1),'mm') - 1 from dual;


№11: 得到一年的每一天
select trunc(sysdate,'yyyy')+ rn -1 date0 
from 
(select rownum rn from all_objects 
where rownum<366);


№12:今天是今年的第N天
SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;

№13:如何在给现有的日期加上2年
select add_months(sysdate,24) from dual;

№14:判断某一日子所在年分是否为润年 
select decode(to_char(last_day(trunc(sysdate,'y')+31),'dd'),'29','闰年','平年') from dual;

№15:判断两年后是否为润年
select decode(to_char(last_day(trunc(add_months(sysdate,24),'y')+31),'dd'),'29','闰年','平年') from dual;


№16:得到日期

select ceil(to_number(to_char(sysdate,'mm'))/3) from dual;

select to_char(sysdate, 'Q') from dual; 


版权声明:欢迎转载

Oracle中时间日期转化函数to_date和to_char用法总结

在实际的工作中会经常会用到to_char()、to_date()函数来对时间、日期进行处理。 1、to_char()函数的用法  1.1、将时间日期按照指定的格式输出,得到的是字符串,而非date...
  • dtjiawenwang88
  • dtjiawenwang88
  • 2017年06月15日 18:04
  • 503

Oracle TO_DATE() 函数格式化时间

TO_DATE格式(以时间:2007-11-02 13:45:25为例): 用法:to_date(value, pattern),value是时间参数,pattern是时间的格式         ...
  • zhanglu0223
  • zhanglu0223
  • 2013年01月02日 13:50
  • 2746

oracle的to_date()与concat()函数使用实例

oracle的to_date()与concat()函数使用实例出于业务需求,和数据库历史原因,业务需要在表中寻找出在个时间前12个月的某些数据,然而数据库存储的时间的分开年月存储,而且是采用varch...
  • weixin_37620246
  • weixin_37620246
  • 2017年07月21日 14:44
  • 344

Oracle to_date/Trunc函数用法及date字段只精确到日期的问题

本文主要涉及三个问题:to_tate函数、Trunc函数的使用方法及date字段数据只获取日期不获取时间的问题 1、两个函数的使用方法: (1)to_date() 用法:TO_DATE('2016...
  • zcf_0923
  • zcf_0923
  • 2016年04月18日 18:45
  • 3113

Oracle 11G函数整理(日期函数)

日期函数 1、ADD_MONTHS(date,integer)  给一个日期加上几个月,返回日期 select ADD_MONTHS(sysdate,2) a1,ADD_MONTHS(sysdate...
  • ceclar123
  • ceclar123
  • 2013年09月30日 11:10
  • 3843

oracle中to_date详细用法示例(oracle日期格式转换)

oracle中to_date详细用法示例(oracle日期格式转换) 作者: 字体:[增加 减小] 类型:转载 这篇文章主要介绍了oracle中to_date详细用法示例,包括期和...
  • evilcry2012
  • evilcry2012
  • 2015年05月13日 17:53
  • 2376

往Oracle数据库中插入日期型数据(to_date的用法)

往Oracle数据库中插入日期型数据(to_date的用法) INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-20 18:31:34' , '...
  • qq_29663071
  • qq_29663071
  • 2016年05月25日 11:30
  • 4784

Oracle数据库中 to_date()函数的用法

在Oracle数据库中,Oracle to_date()函数是我们经常使用的函数,下面就为您详细介绍Oracle to_date()函数的用法to_date()与24小时制表示法及mm分钟的显示:一、...
  • idomyway
  • idomyway
  • 2017年12月12日 19:23
  • 64

2015第一博,Oracle时间段查询,TO_DATE和TO_CHAR使用对比

Oracle时间段查询,TO_DATE和TO_CHAR使用对比
  • JavaAlpha
  • JavaAlpha
  • 2015年02月06日 11:53
  • 4101

Oracle中TO_DATE格式数据按年月日汇总

oracle数据库中分别提取出date年月日和时间 to_char(date,'YYYY')--年 to_char(date,'MM')--月 to_char(date,'DD')--日 to_cha...
  • yjq30604
  • yjq30604
  • 2015年08月14日 09:12
  • 1465
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle to_date(...)函数相关
举报原因:
原因补充:

(最多只允许输入30个字)