精华内容
下载资源
问答
  • Oracle TO_DATE 日期格式大全

    万次阅读 多人点赞 2018-02-22 14:52:32
    转自http://apps.hi.baidu.com/share/detail/10070907Oracle TO_DATE 日期格式大全Oracle中TO_DATE格式2009-04-14 10:53TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 ...

    转自http://apps.hi.baidu.com/share/detail/10070907

    Oracle TO_DATE 日期格式大全

    Oracle中TO_DATE格式2009-04-14 10:53TO_DATE格式(以时间:2007-11-02   13:45:25为例)

            Year:     

            yy two digits 两位年                显示值:07

            yyy three digits 三位年                显示值:007

            yyyy four digits 四位年                显示值:2007

            Month:     

            mm    number     两位月              显示值:11

            mon    abbreviated 字符集表示          显示值:11月,若是英文版,显示nov    

            month spelled out 字符集表示          显示值:11月,若是英文版,显示november

             

            Day:     

            dd    number         当月第几天        显示值:02

            ddd    number         当年第几天        显示值:02

            dy    abbreviated 当周第几天简写    显示值:星期五,若是英文版,显示fri

            day    spelled out   当周第几天全写    显示值:星期五,若是英文版,显示friday       

            ddspth spelled out, ordinal twelfth

                

                  Hour:

                  hh    two digits 12小时进制            显示值:01

                  hh24 two digits 24小时进制            显示值:13

                 

                  Minute:

                  mi    two digits 60进制                显示值:45

                 

                  Second:

                  ss    two digits 60进制                显示值:25

                 

                  其它

                  Q     digit         季度                  显示值:4

                  WW    digit         当年第几周            显示值:44

                  W    digit          当月第几周            显示值:1

                 

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

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

               

    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;

    30,查询一年12个月的信息

    Select to_char(add_months(trunc(sysdate,'year'),Rownum - 1),'yyyy-mm')
    From dual Connect By Rownum <= 12

    1 2009-01
    2 2009-02
    。。。
    11 2009-11
    12 2009-12

    31、查询每月30天的信息

    Select to_char(trunc(sysdate,'month') + Rownum - 1,'yyyy-mm-dd')
    From dual Connect By Rownum <= extract(Day From last_day(trunc(Sysdate,'month')))

    1 2009-07-01
    2 2009-07-02
    3 2009-07-03

    。。。
    30 2009-07-30
    31 2009-07-31

    32、目前时间日期信息

    SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL; return Current Year
    ? SELECT EXTRACT(MONTH FROM SYSDATE) FROM DUAL; return Current Month
    ? SELECT EXTRACT(DAY FROM SYSDATE) FROM DUAL; return Current Day

    展开全文
  • 在说to_char,to_date,to_timestamp这些内置函数之前,首先要对数据库日期类型有所认识: date和timestamp date DATE数据类型的问题在于它表示两个事件发生时间间隔的度量粒度是秒。 timpstamp ORACLE已经在...
    转载请标明出处:
    原文首发于: http://www.zhangruibin.com
    本文出自 RebornChang的博客

    厚颜打广告,博主个人博客地址传送门 ,欢迎来访

    在说to_char,to_date,to_timestamp这些内置函数之前,首先要对数据库日期类型有所认识:

    date和timestamp

    date

    DATE数据类型的问题在于它表示两个事件发生时间间隔的度量粒度是秒。

    timpstamp

    ORACLE已经在DATE数据类型上扩展出来了TIMESTAMP数据类型,它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒的信息。如果你想把 DATE类型转换成TIMESTAMP类型,就使用CAST函数。

    SQL> SELECT CAST(date1 AS TIMESTAMP) "Date" FROM t;
    

    date和timestamp 的区别

    1.date类型是Oracle常用的日期型变量,他的时间间隔是秒。两个日期型相减得到是两个时间的间隔,注意单位是“天”。
    2.timestamp是DATE类型的扩展,可以精确到小数秒(fractional_seconds_precision),可以是0 to9,缺省是6。两个timestamp相减的话,不能直接的得到天数,而是得到,多少天,多少小时,多少秒等。

    date和timestamp之间的相互转换

      to_char来转换timestamp——>date:
      select to_date(to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') from dual;
    
      date ——>timestamp:
      select to_timestamp(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') from dual;
    
    
    

    timestamp(n),n=0-9

    在创建数据库的时候我们经常看到,timestamp(3)这样的列格式,那么timestamp这个参数3是什么意思呢,有没有其他的参数可选?接下来就稍微说下:
    众所周知,常见时间单位有:世纪,年,月,周,日,时,分,秒(说光年的去二次元玩),那么比秒还小的时间计量单位是什么呢?毫秒(ms),微秒(us),纳秒(ns),皮秒(ps),飞秒(fs)。 最小的是一飞秒,是10的负15次方秒,即千万亿分之一秒,光在真空中,一飞秒仅走0.3微米。
    说上面那些跟timestamp有什么关联?那就说下关联:timestamp(3)在数据库中的存储类比2015-07-28 12:46:45:759,分别是:年-月-日 时:分:秒:毫秒;那前面是参数是6,精度为微秒。参数为9,精度为纳秒。
    ps:传说oracle数据库的timestamp的存储精度为6位,即微秒级,所以纳秒级的存储母鸡啦,有兴趣的可以将存储过程解密下看看…
    在数据库取按照指定的精度取值的话,sql如下:

      SQL> select
      2  to_char(systimestamp, 'yyyy-mm-dd hh24:mi:ss:ff3') t_3,
      3  to_char(systimestamp, 'yyyy-mm-dd hh24:mi:ss:ff6') t_6,
      4  to_char(systimestamp, 'yyyy-mm-dd hh24:mi:ss:ff9') t_9
      5  from dual;
      T_3:2016-07-28 12:46:45:759 
      T_6:2016-07-28 12:46:45:759492
      T_9:2016-07-28 12:46:45:759492000
    

    to_char()

    数据库中日期到sql结果集操作

       select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
    
       select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual;
    
       select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from dual;
    
       select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from dual ;
    

    to_date()

    sql中的字符到数据库中的日期的操作

    select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from dual ;
    具体的用法,参考TO_CHAR
    

    to_timestamp()

    sql中的字符到数据库中的时间戳的操作

    select to_timestamp('2016-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')-systimestamp from dual;
    

    to_number()

    数据库中数字类型字符串到sql结果集转化为number类型的操作

    To_number(varchar2 or char,’format model’)
    具体的to_number还有更多的操作,可以自行寻找资料,这里就不赘述了。
    

    附录

    mybatis常用的jdbcType类型,摘自网络:http://ysj5125094.iteye.com/blog/2185024/
    MyBatis 通过包含的jdbcType类型

    BIT         FLOAT      CHAR           TIMESTAMP       OTHER       UNDEFINED
    
    TINYINT     REAL       VARCHAR        BINARY          BLOB        NVARCHAR
    
    SMALLINT    DOUBLE     LONGVARCHAR    VARBINARY       CLOB        NCHAR
    
    INTEGER     NUMERIC    DATE           LONGVARBINARY   BOOLEAN     NCLOB
    
    BIGINT      DECIMAL    TIME           NULL            CURSOR
    

    Mybatis中javaType和jdbcType对应和CRUD例子

    <resultMap type="java.util.Map" id="resultjcm">  
      <result property="FLD_NUMBER" column="FLD_NUMBER"  javaType="double" jdbcType="NUMERIC"/>  
      <result property="FLD_VARCHAR" column="FLD_VARCHAR" javaType="string" jdbcType="VARCHAR"/>  
      <result property="FLD_DATE" column="FLD_DATE" javaType="java.sql.Date" jdbcType="DATE"/>  
      <result property="FLD_INTEGER" column="FLD_INTEGER"  javaType="int" jdbcType="INTEGER"/>  
      <result property="FLD_DOUBLE" column="FLD_DOUBLE"  javaType="double" jdbcType="DOUBLE"/>  
      <result property="FLD_LONG" column="FLD_LONG"  javaType="long" jdbcType="INTEGER"/>  
      <result property="FLD_CHAR" column="FLD_CHAR"  javaType="string" jdbcType="CHAR"/>  
      <result property="FLD_BLOB" column="FLD_BLOB"  javaType="[B" jdbcType="BLOB" />  
      <result property="FLD_CLOB" column="FLD_CLOB"  javaType="string" jdbcType="CLOB"/>  
      <result property="FLD_FLOAT" column="FLD_FLOAT"  javaType="float" jdbcType="FLOAT"/>  
      <result property="FLD_TIMESTAMP" column="FLD_TIMESTAMP"  javaType="java.sql.Timestamp" jdbcType="TIMESTAMP"/>  
     </resultMap>  
    

    Mybatis中javaType和jdbcType对应关系

    JDBC Type           Java Type  
    CHAR                String  
    VARCHAR             String  
    LONGVARCHAR         String  
    NUMERIC             java.math.BigDecimal  
    DECIMAL             java.math.BigDecimal  
    BIT             boolean  
    BOOLEAN             boolean  
    TINYINT             byte  
    SMALLINT            short  
    INTEGER             int  
    BIGINT              long  
    REAL                float  
    FLOAT               double  
    DOUBLE              double  
    BINARY              byte[]  
    VARBINARY           byte[]  
    LONGVARBINARY               byte[]  
    DATE                java.sql.Date  
    TIME                java.sql.Time  
    TIMESTAMP           java.sql.Timestamp  
    CLOB                Clob  
    BLOB                Blob  
    ARRAY               Array  
    DISTINCT            mapping of underlying type  
    STRUCT              Struct  
    REF                         Ref  
    DATALINK            java.net.URL[color=red][/color] 
    
    展开全文
  • 1,to_date('2013-1-1','yyyy-mm-dd') :一个具体字符串日期格式化,成为一个数据库日期对象,不同的格式可以得到同一个日期对象,一般用于日期插入insert和where条件中。 select to_date('2013-1-1','yyyy-mm-dd'...

    1,to_date('2013-1-1','yyyy-mm-dd') :一个具体字符串日期格式化,成为一个数据库日期对象,不同的格式可以得到同一个日期对象,一般用于日期插入insert和where条件中。

    select to_date('2013-1-1','yyyy-mm-dd')  from dual ----2013/1/1 ,是字符串

    2,to_char(a.begintime,'yyyy-mm-dd'):格式化一个数据库日期对象,成为一个字符串,一般用于select查询,注意where条件不这样用,to_char(a.begintime,'yyyy-mm-dd')最后的结果应该是'2013-01-01' 而不是'2013-1-1'。

    select to_char(sysdate,'yyyy-mm-dd')  from dual ---sysdate ,必须是date类型。
    

    展开全文
  • Oracle中的to_dateto_char用法总结

    千次阅读 2019-05-05 22:16:52
    Oracle提供的单行函数有两个比较重要的函数to_dateto_char,通过案例掌握用法: to_char用法 1.语法:to_char(日期,'日期格式‘) 2.作用:将日期通过指定格式进行字符串转换,转换成字符串类型 3.案例: 1. //...

    Oracle提供的单行函数有两个比较重要的函数to_date和to_char,通过案例掌握用法:

    to_char用法

    1.语法:to_char(日期,'日期格式‘)
    2.作用:将日期通过指定格式进行字符串转换,转换成字符串类型
    3.案例:
    1.

      //将当前系统时间转换成(yyyy-mm-dd hh:mi:ss day)格式。
        `select to_char(sysdate , 'yyyy-mm-dd hh:mi:ss day') from dual;` 
    
     把hiredate列看做是员工的生日,查询本月过生日的员工(考察知识点:单行函数)
     select * from employees where to_char(hire_date,'mm')=to_char(sysdate,'mm');
    

    to_date用法

    1.语法:to_date(字符串,'日期格式’)
    2.用法:将字符串通过指定格式进行日期转换,转换成日期类型
    3.案例:

      //将和日期兼容的字符串按照(yyyy-mm-dd hh24:mi:ss:ff day)转换成日期。
         select to_date('19950101','yyyy-mm-dd') from dual;
    
    1. 查询入职日期在1997-5-1到1997-12-31之间的所有员工信息 select * from employees where to_date('1997-5-1','yyyy-mm-dd')<hire_date and to_date('1997-12-31','yyyy-mm-dd')>hire_date;

    综合案例:
    3. 请用三种以上的方式查询2002年入职的员工(考察知识点:单行函数)提示:like to_char提取年 直接>2002年一月一号

    select * from employees where hire_date like '2002%';select * from employees where to_char(hire_date,'yyyy')=2002;select * from employees where to_char(hire_date,'yyyymmdd')>20020101 and to_char(hire_date,'yyyymmdd')<20021231;
    
    1. 查询2002年下半年入职的员工(考察知识点:单行函数)提示:提取年为2002,提取月大于6

    select * from employees where to_char(hire_date,‘yyyy’)=2002 and to_char(hire_date,‘mm’)>6 and to_char(hire_date,‘mm’)<=12;

    5.打印自己出生了多少天

    select sysdate-to_date('1996/10/16','yyyy/mm/dd') from dual;
    

    6.出生那天星期几?

    select to_char(to_date('1996/10/16','yyyy/mm/dd'),'yyyy-mm-dd day') from dual;//星期三
    
    展开全文
  • sql优化to_char 和 to_date 的使用

    千次阅读 2018-12-04 10:55:59
    1. to_char 优化成to_date,把"="左边函数移到右边 优化前: select sum(POINT) as point , to_char(p.EXPIRE_DATE,'yyyy/mm/dd') as strParam  from MSTB_CUSTOMER p  where p.STATUS = 1   and ...
  • to_date()与to_char()

    千次阅读 2019-05-14 14:22:46
    to_date() select sysdate,to_date('2018-3-20','yyyy-mm-dd') from dual; select sysdate,to_date('2018-3-20','yyyy.mm.dd') from dual; select sysdate,to_date('2018-3-20','yyyy/mm/dd') from dual; select s...
  • sql to_date && to_timestamp

    千次阅读 2019-03-09 03:32:40
    1.二者区别: to_data 转换为 普通的时间格式 to_timestamp 转换可为 时间戳格式 2.使用误区: 比较同一天 日期大小的时候 ...= to_date('2018-03-12 18:47:35','yyyy-MM-dd hh24:mi:ss') from pub_emp...
  • TO_DATE 是把字符串转换为数据库中得日期类型转换函数 TO_CHAR 是把日期或数字转换为字符串 TO_NUMBER 将字符转化为数字 (1)TO_DATE 使用TO_DATE函数将字符转换为日期,规范:TO_DATE(char, '格式') 例...
  • Oracle中to_char和to_date在MySQL中的写法

    千次阅读 2019-04-24 10:38:28
     date_format(date,’%Y-%m-%d’) -------------->oracle中的to_char();  str_to_date(date,’%Y-%m-%d’) -------------->oracle中的to_date();  %Y:代表4位的年份  %y:代表2为的年份  %m:代表月, ...
  • mysql STR_TO_DATE 为null问题

    千次阅读 2019-09-20 14:26:06
    mysql STR_TO_DATE 时间转换 为null问题 mysq时间转换 1.情况 SELECT STR_TO_DATE('20:09:30', '%h:%i:%s') – NULL(超过12时的小时用小写h,得到的结果为NULL) 2.情况 此种情况为mysql设置问题 类似于未指定的日期...
  •  STR_TO_DATE 和 DATE_FORMAT 一样都用于格式化时间数据   其中格式化数据的格式一般为   %Y 年,四位 %m 月,数值(00-12) %d 月的天,数值(00-31) %h 小时 (01-12...
  • Oracle日期格式化以问题:to_date(sysdate,'yyyy-MM-dd')与 to_date(to_char(sysdate,'yyyy-MM-dd'),'yyyy-MM-dd')
  • to_timestamp、to_timestamp、to_date 函数

    千次阅读 2017-09-29 16:50:53
    date类型是Oracle常用的日期型变量,时间间隔是秒。两个日期型相减得到是两个时间的间隔,注意单位是“天”。 timestamp是DATE类型的扩展,可以精确到小数秒(fractional_seconds_precision),可以是 0...to_date
  • 标题Oracle中to_char函数和MySQL中的str_to_date函数 1. str_to_date()----->相当于Oracle中的to_char(): 字符串转换为日期格式 (1)数据库中的写法: select p.*,to_char(departureTime,'%Y-%m-%d') ...
  • MySQL str_to_date()函数

    千次阅读 2018-09-08 11:48:32
    转载自 MySQL str_to_date()函数 MySQL STR_TO_DATE函数简介 下面说明了STR_TO_DATE()函数的语法: STR_TO_DATE(str,fmt); STR_TO_DATE()根据fmt格式字符串将str字符串转换为日期值。 STR_TO_DATE()函数可能...
  • 注:先转载一篇,但是本博文不是特别详细,抽时间博主整理个详细点的 ...(1)TO_DATE使用TO_DATE函数将字符转换为日期,规范:TO_DATE(char, ‘格式’) 例1: [sql] view plain copy print?select...
  • Oracle数据库中 to_date()函数的用法

    万次阅读 多人点赞 2017-12-12 19:23:00
    在Oracle数据库中,Oracle to_date()函数是我们经常使用的函数,下面就为您详细介绍Oracle to_date()函数的用法to_date()与24小时制表示法及mm分钟的显示:一、在使用Oracle的to_date函数来做日期转换时,很多Java...
  • oracle中to_dateto_char的区别

    千次阅读 2017-08-05 11:21:02
    oracle中对时间的操作以及to_char和to_date用法总结   Oracle时间处理有时候to_char和to_date两个比较关键的函数,在此总结一下:   一获取系统当前时间 select sysdate from dual;   二 to_char的用法 ...
  • 一、Oracle中的to_date()函数 1、to_date()与24小时制表示法及mm分钟的显示: 在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在...
  • oracle to_date 函数

    千次阅读 2019-09-16 16:29:50
    to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,供您参考学习。 AD: 在Oracle数据库中,Oracle to_date()函数是我们经常使用的函数,下面就为您详细...
  • plsql中to_dateto_char

    千次阅读 2019-01-21 20:39:30
    to_char(sysdate,'yyyymmdd'),取时间到天,可以用group by to_char(sysdate,'yyyymmdd')按天对数据进行汇总。...to_date('2019-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),字符格式转换为时间格式。...
  • SQL语句 TO_CHAR与TO_DATE

    千次阅读 2016-09-02 17:06:09
    TO_DATE 是把字符串转换为数据库中得日期类型转换函数; TO_NUMBER 将字符转化为数字; 一、TO_CHAR  使用TO_CHAR函数处理数字  TO_CHAR(number, '格式')  TO_CHAR(salary,’$99,999...
  • mysql 类似to_char() to_date()函数 mysql日期和字符相互转换方法 date_format(date,'%Y-%m-%d') --------------&gt;oracle中的to_char(); str_to_date(date,'%Y-%m-%d') --------------&gt;oracle中的to...
  • to_char()函数 to_date()函数

    万次阅读 2018-07-26 15:03:11
    日期转换函数:  日期转换成字符串:  to_char(字段名, ’字符串格式’)    =&... select * from emp where dates between to_date('2007-06-12 10:00:00', 'yyyy-mm-dd hh24:mi:ss')  an...
  • Mysql中to_char()和str_to_date()函数

    万次阅读 2016-09-09 15:46:36
    1、mysql内置函数,在mysql里面利用str_to_date()把字符串转换为日期。 示例:分隔符一致,年月日要一致、 select str_to_date('2016-09-09 15:43:28','%Y-%m-%d %H:%i:%s'); select str_to_date('2016-09-09...
  • DATE_FORMAT和TO_DATE

    千次阅读 2015-09-17 15:48:12
    DATE_FORMAT函数用法 一、在oracle中,当想把字符串为‘2011-09-20 08:30:45’的格式转化为日期格式,我们可以使用oracle提供的to_date函数。 sql语句为: SELECT to_date('2011-09-20 08:30:45', 'yyyy-MM-dd...
  • to_char、to_date效率问题记录

    千次阅读 2017-05-18 17:20:41
    避免在等号左边使用to_cahr、to_date. 例: select * from table where to_char(date, 'yyyy-mm-dd') = '2017-05-18'  可改为 select * from table where date >= '207-05-18 00:00:00' and date 你会看到耗时会...
  • oracle中对时间的操作以及to_char和to_date用法总结 Oracle时间处理有时候to_char和to_date两个比较关键的函数,在此总结一下: 一获取系统当前时间select sysdate from dual; 二 to_char的用法select to_char...
  • To_char、to_dateto_numberTO_CHAR 是把日期或数字转换为字符串TO_DATE 是把字符串转换为数据库中得日期类型转换函数TO_NUMBER 将字符转化为数字 TO_CHAR² 使用TO_CHAR函数处理数字 TO_CHAR(number, 格式) TO_...
  • mysql STR_TO_DATE无法使用

    千次阅读 2019-09-12 17:32:55
    在mysql中 STR_TO_DATE 函数是将字符串转化成时间的函数,这里不过多介绍。 问题 SELECT STR_TO_DATE( oct.date, ‘%Y年%c月’ ) as result FROM oct 在执行这条sql语句时,按照道理应该是会显示出 数据表中存储...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 932,412
精华内容 372,964
关键字:

To_date