精华内容
下载资源
问答
  • oracle日期转换函数

    2021-04-30 08:28:03
    与date操作关系最大的就是两个转换函数:to_date(),to_char()to_date() 作用将字符类型按一定格式转化为日期类型:具体用法:to_date(''2004-11-27'',''yyyy-mm-dd''),前者为字符串,后者为转换日期格式,注意,前后...

    与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'') 将得到具体的时间 多种日期格式:

    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> select to_char(sysdate,''yyyy-mm-dd hh24:mi:ss'') time from dual;

    展开全文
  • oracle日期转换

    2013-12-03 17:15:17
    oracle中的日期转换,包括计算时间差,某月,最后一天等常见时间
  • oracle日期转换操作

    千次阅读 2019-04-26 16:06:42
    to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换。 Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的select语句块中。 比如,我要获得系统时间,则用“select sysdate...

    to_date("要转换的字符串","转换的格式")   两个参数的格式必须匹配,否则会报错。

    即按照第二个参数的格式解释第一个参数。

    to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换。

     

    Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的select语句块中

    比如,我要获得系统时间,则用“select sysdate from dual” 则返回系统当前的时间:2008-11-07 9:32:49,不同系统可能返回日期的格式不一样。"select user from dual"则返回当前连接的用户。如果是"select 1+2 from dual",则返回结果:3

    1. 日期和字符转换函数用法(to_date,to_char)
             
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;   //日期转化为字符串   
    select to_char(sysdate,'yyyy') as nowYear   from dual;   //获取时间的年   
    select to_char(sysdate,'mm')    as nowMonth from dual;   //获取时间的月   
    select to_char(sysdate,'dd')    as nowDay    from dual;   //获取时间的日   
    select to_char(sysdate,'hh24') as nowHour   from dual;   //获取时间的时   
    select to_char(sysdate,'mi')    as nowMinute from dual;   //获取时间的分   
    select to_char(sysdate,'ss')    as nowSecond from dual;   //获取时间的秒

        
    select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')    from dual//

    2.      
        select to_char( to_date(222,'J'),'Jsp') from dual      
        
        显示Two Hundred Twenty-Two    

    3.求某天是星期几      
       select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;      
       星期一      
       select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;      
       monday      
       设置日期语言      
       ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';      
       也可以这样      
       TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')    

    4. 两个日期间的天数      
        select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;    

    5. 时间为null的用法      
       select id, active_date from table1      
       UNION      
       select 1, TO_DATE(null) from dual;      
       
       注意要用TO_DATE(null)    

    6.月份差   
       a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')      
       那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。      
       所以,当时间需要精确的时候,觉得to_char还是必要的 
          
    7. 日期格式冲突问题      
        输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: '01-Jan-01'      
        alter system set NLS_DATE_LANGUAGE = American      
        alter session set NLS_DATE_LANGUAGE = American      
        或者在to_date中写      
        select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;      
        注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,      
        可查看      
        select * from nls_session_parameters      
        select * from V$NLS_PARAMETERS    

    8.      
       select count(*)      
       from ( select rownum-1 rnum      
           from all_objects      
           where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-      
           02-01','yyyy-mm-dd')+1      
          )      
       where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' )      
            not in ( '1', '7' )      
       
       查找2002-02-28至2002-02-01间除星期一和七的天数      
       在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).    

    9. 查找月份     
        select months_between(to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;      
        1      
       select months_between(to_date('02-01-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;      
        1.03225806451613 
           
    10. Next_day的用法      
        Next_day(date, day)      
        
        Monday-Sunday, for format code DAY      
        Mon-Sun, for format code DY      
        1-7, for format code D    

    11      
       select to_char(sysdate,'hh:mi:ss') TIME from all_objects      
       注意:第一条记录的TIME 与最后一行是一样的      
       可以建立一个函数来处理这个问题      
       create or replace function sys_date return date is      
       begin      
       return sysdate;      
       end;      
       
       select to_char(sys_date,'hh:mi:ss') from all_objects;   
         
    12.获得小时数      
         extract()找出日期或间隔值的字段值
        SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer      
        SQL> select sysdate ,to_char(sysdate,'hh') from dual;      
        
        SYSDATE TO_CHAR(SYSDATE,'HH')      
        -------------------- ---------------------      
        2003-10-13 19:35:21 07      
        
        SQL> select sysdate ,to_char(sysdate,'hh24') from dual;      
        
        SYSDATE TO_CHAR(SYSDATE,'HH24')      
        -------------------- -----------------------      
        2003-10-13 19:35:21 19    

           
    13.年月日的处理      
       select older_date,      
           newer_date,      
           years,      
           months,      
           abs(      
            trunc(      
             newer_date-      
             add_months( older_date,years*12+months )      
            )      
           ) days 
           
       from ( select      
            trunc(months_between( newer_date, older_date )/12) YEARS,      
            mod(trunc(months_between( newer_date, older_date )),12 ) MONTHS,      
            newer_date,      
            older_date      
            from ( 
                  select hiredate older_date, add_months(hiredate,rownum)+rownum newer_date      
                  from emp 
                 )      
          )    

    14.处理月份天数不定的办法      
       select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual    

    16.找出今年的天数      
       select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual    

       闰年的处理方法      
       to_char( last_day( to_date('02'    | | :year,'mmyyyy') ), 'dd' )      
       如果是28就不是闰年    

    17.yyyy与rrrr的区别      
       'YYYY99 TO_C      
       ------- ----      
       yyyy 99 0099      
       rrrr 99 1999      
       yyyy 01 0001      
       rrrr 01 2001    

    18.不同时区的处理      
       select to_char( NEW_TIME( sysdate, 'GMT','EST'), 'dd/mm/yyyy hh:mi:ss') ,sysdate      
       from dual;    

    19.5秒钟一个间隔      
       Select TO_DATE(FLOOR(TO_CHAR(sysdate,'SSSSS')/300) * 300,'SSSSS') ,TO_CHAR(sysdate,'SSSSS')      
       from dual    

       2002-11-1 9:55:00 35786      
       SSSSS表示5位秒数    

    20.一年的第几天      
       select TO_CHAR(SYSDATE,'DDD'),sysdate from dual
            
       310 2002-11-6 10:03:51    

    21.计算小时,分,秒,毫秒      
        select      
         Days,      
         A,      
         TRUNC(A*24) Hours,      
         TRUNC(A*24*60 - 60*TRUNC(A*24)) Minutes,      
         TRUNC(A*24*60*60 - 60*TRUNC(A*24*60)) Seconds,      
         TRUNC(A*24*60*60*100 - 100*TRUNC(A*24*60*60)) mSeconds      
        from      
        (      
         select      
         trunc(sysdate) Days,      
         sysdate - trunc(sysdate) A      
         from dual      
       )    


       select * from tabname      
       order by decode(mode,'FIFO',1,-1)*to_char(rq,'yyyymmddhh24miss');      
       
       //      
       floor((date2-date1) /365) 作为年      
       floor((date2-date1, 365) /30) 作为月      
       d(mod(date2-date1, 365), 30)作为日.

    23.next_day函数      返回下个星期的日期,day为1-7或星期日-星期六,1表示星期日
       next_day(sysdate,6)是从当前开始下一个星期五。后面的数字是从星期日开始算起。      
       1 2 3 4 5 6 7      
       日 一 二 三 四 五 六    
       
       --------------------------------------------------------------- 
       
       select    (sysdate-to_date('2003-12-03 12:55:45','yyyy-mm-dd hh24:mi:ss'))*24*60*60 from ddual
       日期 返回的是天 然后 转换为ss
         
    24,round[舍入到最接近的日期](day:舍入到最接近的星期日)
       select sysdate S1,
       round(sysdate) S2 ,
       round(sysdate,'year') YEAR,
       round(sysdate,'month') MONTH ,
       round(sysdate,'day') DAY from dual

    25,trunc[截断到最接近的日期,单位为天] ,返回的是日期类型
       select sysdate S1,                     
         trunc(sysdate) S2,                 //返回当前日期,无时分秒
         trunc(sysdate,'year') YEAR,        //返回当前年的1月1日,无时分秒
         trunc(sysdate,'month') MONTH ,     //返回当前月的1日,无时分秒
         trunc(sysdate,'day') DAY           //返回当前星期的星期天,无时分秒
       from dual

    26,返回日期列表中最晚日期
       select greatest('01-1月-04','04-1月-04','10-2月-04') from dual

    27.计算时间差
         注:oracle时间差是以天数为单位,所以换算成年月,日
         
          select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))/365) as spanYears from dual        //时间差-年
          select ceil(moths_between(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanMonths from dual        //时间差-月
          select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanDays from dual             //时间差-天
          select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24) as spanHours from dual         //时间差-时
          select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60) as spanMinutes from dual    //时间差-分
          select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60*60) as spanSeconds from dual //时间差-秒

    28.更新时间
         注:oracle时间加减是以天数为单位,设改变量为n,所以换算成年月,日
         select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n*365,'yyyy-mm-dd hh24:mi:ss') as newTime from dual        //改变时间-年
         select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),add_months(sysdate,n) as newTime from dual                                 //改变时间-月
         select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n,'yyyy-mm-dd hh24:mi:ss') as newTime from dual            //改变时间-日
         select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n/24,'yyyy-mm-dd hh24:mi:ss') as newTime from dual         //改变时间-时
         select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n/24/60,'yyyy-mm-dd hh24:mi:ss') as newTime from dual      //改变时间-分
         select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n/24/60/60,'yyyy-mm-dd hh24:mi:ss') as newTime from dual   //改变时间-秒

    29.查找月的第一天,最后一天
         SELECT Trunc(Trunc(SYSDATE, 'MONTH') - 1, 'MONTH') First_Day_Last_Month,
           Trunc(SYSDATE, 'MONTH') - 1 / 86400 Last_Day_Last_Month,
           Trunc(SYSDATE, 'MONTH') First_Day_Cur_Month,
           LAST_DAY(Trunc(SYSDATE, 'MONTH')) + 1 - 1 / 86400 Last_Day_Cur_Month
       FROM dual;

    展开全文
  • oracle 日期转换 CST

    千次阅读 2019-01-21 10:39:56
    Thu Oct 29 00:00:00 CST 2015 --&gt; 2015/10/29 SELECT to_date(REPLACE('Thu Oct 29 00:00:00 CST 2015', 'CST', ''),'dy mon dd hh24:mi:ss yyyy','NLS_DATE_LANGUAGE = American') from dual

    Thu Oct 29 00:00:00 CST 2015  --> 2015/10/29

    SELECT to_date(REPLACE('Thu Oct 29 00:00:00 CST 2015', 'CST', ''),'dy mon dd hh24:mi:ss yyyy','NLS_DATE_LANGUAGE = American') from dual

    展开全文
  • Oracle日期转换字符串

    千次阅读 2018-07-23 10:01:54
    TO_CHAR(字段名,’yyyy-MM-dd’)...日期转字符串: select to_char(sysdate,’yyyy-MM-dd HH24:mi:ss’) from dual; 字符串转日期 select to_date(‘2005-01-01 13:14:20’,’yyyy-MM-dd HH24:mi:ss’) from dual...

    Oracle取当前时间

    TO_CHAR(字段名,'yyyy-MM-dd') <= 'yyyy-MM-dd'
    日期转字符串:
    select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;
    字符串转日期
    select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual
    

    博主QQ交流群:Java技术|SpringCloud交流群 413531925

    展开全文
  • ORACLE日期转换成汉字某年某月某日

    万次阅读 2017-08-31 11:53:03
    sql如下: SELECT to_char(to_date('2017-05-23','YYYY-MM-DD'),'YYYY"年"MM"月"DD"日"') FROM DUAL;
  • Oracle日期转换处理

    2017-07-06 19:14:03
    Oracle日期转换处理
  • 文档描述了oracle日期、字符串的相关转换方式,包括日期的8位、10位格式,精确到日、分、秒等
  • 实现当前时间,周,月,季度,半年,年的转换,其中特别注意的是周的处理,IW方式处理逻辑,如果本周有大于等于4天,本周属于几年,如果小于4天,本周属于下一年 以1990/12/31为例,这天属于199101周 SELECT TO_...
  • 日期转换成字符串时,可以按新的格式显示。如格式YYYY-MM-DD HH24:MM:SS表示“年-月-日 小时:分钟:秒”。Oracle日期类型是包含时间在内的。主要的日期格式字符的含义如下表所示:代码代表的格式例子AM、PM上午...
  • 本节主要介绍了ORACLE毫秒与日期的相互转换,毫秒转换日期格式化的时间可以是12小时制和24小时制
  • Oracle日期转换

    千次阅读 2018-05-15 22:01:21
    OracleTIMESTAMP 转 DATEto_date(to_char(b.creat_dt,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')SELECT last_day(add_months(to_timestamp('2013-01','yyyy-MM'), -1)) + 1 FROM dual;--取指定日期月份的第...
  • UPDATE_TIME 在我的表里是varchar2类型 所以导入的数据的格式全部变成类似 29-12月-11 格式的 弄了半天 原来oracle 里date 写入字符串 默认格式是 DD-MON-YY格式 select to_date(create_time, 'DD-MON-YY') from t...
  • Oracle日期函数和转换函数

    万次阅读 多人点赞 2019-04-25 20:54:03
    一、日期函数 日期函数用于处理date类型的数据,两个日期相减返回日期之间相差的天数。日期不允许做加法运算,无意义。 常见代表符号:yyyy 年,mm 月,dd 日,hh 小时,mi 分钟,ss 秒,day 星期 默认情况下日期...
  • Oracle 日期转换

    千次阅读 2014-11-27 13:58:47
    Oracle 日期转换
  • oracle日期格式转换 to_date()

    千次阅读 2021-05-05 01:12:23
    与date操作关系最大的就是两个转换函数:to_date(),to_char()to_date() 作用将字符类型按一定格式转化为日期类型:具体用法:to_date(‘‘2004-11-27‘‘,‘‘yyyy-mm-dd‘‘),前者为字符串,后者为转换日期格式,...
  • ORACLE 毫秒转换为日期 日期转换毫秒

    千次阅读 2018-11-11 08:05:32
    ORACLE 毫秒转换为日期 日期转换毫秒
  • 本文主要向大家介绍了如何使用Oracle日期转换为周,月,季度,半年,年,通过具体的代码向大家展现,希望对大家学习Oracle有所帮助。实现当前时间,周,月,季度,半年,年的转换,其中特别注意的是周的处理,IW...
  • oracle日期格式转换 to_date(),to_char()

    千次阅读 2020-12-19 18:13:55
    与date操作关系最大的就是两个转换函数:to_date(),to_char()to_date() 作用:将字符类型按一定格式转化为日期类型:具体用法:to_date(''2019-11-27'',''yyyy-mm-dd''),前者为字符串,后者为转换日期格式,注意,...
  • ---------------------------------------------日期函数 --1,months_between() 计算当前时间到距离时间的月数 select ename,months_between(sysdate,emp.hiredate) from emp; --2,add_months() 当前时间月往后加N...
  • oracle数据库日期转换成星期

    千次阅读 2019-03-04 14:04:04
    转自:https://blog.csdn.net/qq_39289746/article/details/79536749 例-1: select t.LINE_NO, t.demand_id, t.work_content, t.ENTER_USER, pkg_attr.get_a007_name(t.ENTER_USER) USER_N...
  • //在平时的应用中,我们很多地方都使用了日期函数to_date()//但是我们对日期函数的格式知道得很少,或者说我们根本就不会去研究它//然而,知道日期格式是多么的重要//下面是一个具体的应用://有一张表,有年字段...
  • oracle 日期转换相关sql

    2008-10-23 14:43:10
    :2007-7-21 17:47:04日期格式参数 含义说明 D 一周中的星期几 DAY 天的名字,使用空格填充到9个字符 DD 月中的第几天 DDD 年中的第几天
  • 1.sql将日期转换成字符串SELECT convert(char,日期字段,120) as date2 FROM table当然是在程序里解决比较灵活,convert(char,date,N)输出的各中样式,N表示不同的时间格式N 日期样式0 04 2 2005 9:06AM1 04/02/052 ...
  • 毫秒转换为日期SELECT TO_CHAR(1406538765000 / (1000 * 60 * 60 * 24) +TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH24:MI:SS') AS...日期转换毫秒SELECT TO_NUMBER(TO_DATE('2014-07-2...
  • Oracle时间转换成字符串

    千次阅读 2021-01-12 05:46:27
    1. 日期和字符转换函数用法(to_date,to_char)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年...
  • Oracle 中文日期转换

    2018-06-19 16:28:00
    2019独角兽企业重金招聘Python工程师标准>>> ...2. 后面的格式是指字符串在转换前的格式,而不是指转换后的格式。 转载于:https://my.oschina.net/u/3023191/blog/1832225
  • 原理:在oracle日期格式相减的值的单位为天,用这个天数加上各种日期函数就可以得出时分秒格式的结果。 为了使用方便,也可以将上述代码封装到函数中使用。 create or replace function test_0303(p_date_num ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,870
精华内容 24,748
关键字:

oracle日期转换