`

日期类型转换(2)

阅读更多
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;
分享到:
评论

相关推荐

    日期跟long转换小工具

    然而,直接在代码中处理这两个类型之间的转换可能会较为复杂,尤其是在涉及到用户界面展示或需要理解时间戳值时。因此,该工具的存在极大地简化了这个过程。 日期转long的转换涉及到将日期对象转换为对应的时间戳。...

    一分钟理解日期类型转换和运算

    详细描述和案例 一分钟理解日期类型转换和运算

    struts2(时间日期类型转换器)

    时间日期类型转换器是Struts2框架中的一个重要组件,它专门用于处理日期和时间格式的转换问题。 在Java中,日期和时间通常表示为`java.util.Date`或`java.time`包下的类,如`LocalDate`、`LocalTime`和`...

    常用类型转换扩展_C#_扩展_类型转换_

    2. **FromXXX()** 方法:与`ToXXX()`相反,用于将特定类型转换为其他类型,如`FromDate()`用于将日期字符串转换为`DateTime`对象。 3. **TryToXXX()** 和 `TryFromXXX()` 方法:模仿`TryParse()`模式,提供安全的...

    STRUTS2类型转换

    Struts2的内建类型转换涵盖了大部分常见类型,包括但不限于String、boolean/Boolean、char/Character、整数类型(int/Integer、float/Float、long/Long、double/Double)、日期(使用当前时区的SHORT格式)以及数组...

    mysql数据类型转换

    2. **性能考虑**:频繁的数据类型转换可能会影响查询性能,因此在设计查询时应尽量减少不必要的类型转换。 3. **错误处理**:当转换失败时,MySQL会根据设置返回错误或者默认值,开发者需要关注这些情况并进行相应的...

    JSON转换为JAVA对象及日期格式转换处理 -

    JSON转换为JAVA对象及日期格式转换处理 -

    c_时间类型转换

    ### C# 时间类型转换详解 在C#编程中,时间处理是常见的需求之一。本文将详细介绍如何使用`DateTime`类来进行各种时间类型的转换,并通过具体的示例代码来展示不同的转换方法及其应用场景。 #### 1. `DateTime` 类...

    实验4 Struts2的类型转换与OGNL表达式语言.doc

    这种类型的转换器通常用于通用的数据类型转换,如日期格式转换等。全局类型转换器一旦配置好后,会在整个应用中被自动调用,无需在每个Action中重复定义。 #### 三、Struts2的自定义类型转换 自定义类型转换是...

    Mysql中类型转换

    ### MySQL中的类型转换 在MySQL中,类型转换是一项非常实用的功能,它可以帮助我们处理不同数据类型之间的转换,尤其是在处理如日期、数字与字符串等类型的相互转换时尤其有用。本文将详细介绍MySQL中常用的类型...

    ORACLE 自动类型转换

    本文将深入探讨“ORACLE 自动类型转换”这一主题,以帮助理解Oracle如何处理不同类型的数据以及可能遇到的问题。 Oracle数据库支持多种数据类型,如数值型(NUMBER、INTEGER、BINARY_INTEGER等)、字符型(VARCHAR2...

    sql server日期格式转换方法大全

    当需要将日期字段与其他非日期类型结合时,可能需要使用`CAST()`或`CONVERT()`。例如,将日期转换为整数(天数): ```sql SELECT CAST(myDate AS int) AS 'DaysSince1900' FROM myTable; ``` 6. 动态SQL和...

    易语言长整数与日期时间转换

    易语言是一种国产的编程语言,它的设计目标是让...而"CopyMemory"和"CopyMemory2"函数虽然不直接关联日期时间转换,但它们在处理内存数据时可能发挥重要作用。掌握这些知识,将有助于你更高效地使用易语言进行编程。

    类的转换C++的内部数据类型遵循隐式类型转换规则

    这种转换通常分为两种类型:转换构造函数和成员转换函数,这两种方法都遵循C++的隐式类型转换规则。 首先,转换构造函数是一种特殊的构造函数,它的作用是将非本类类型的对象转换成本类的对象。在给定的代码示例中...

    struts2自定义数据类型转换练习

    本练习主要关注如何在Struts2中实现自定义的数据类型转换,以满足特定业务需求。 首先,我们需要了解Struts2的数据转换机制。当用户提交表单数据时,Struts2会通过ActionContext获取到这些数据,并尝试将其转换为...

    struts2数据类型转换器

    这篇博客“Struts2数据类型转换器”可能深入探讨了这个主题,虽然具体的细节无法在此给出,但我们可以根据Struts2中数据类型转换的工作原理来展开讨论。 在Java Web开发中,用户通过表单提交的数据通常是字符串形式...

    struts2 类型转换器

    在Struts2中,类型转换器(Type Converter)是框架的一个关键特性,用于处理Action类中属性的自动类型转换。这个特性使得开发者无需手动进行数据类型之间的转换,从而提高了开发效率和代码的可读性。 标题中的...

    asp 类型转换函数大全第1/2页

    日期类型转换函数:`cdate(expression)` - **功能**:将表达式转换为日期类型。 - **示例**: - `cdate("2023-09-01")` 返回 `#2023-09-01#` #### 10. 双精度浮点类型转换函数:`cdbl(expression)` - **功能**:...

    自定义类型转换器

    Struts2框架提供了一种灵活的方式来实现这种类型的转换——即通过自定义类型转换器(Type Converters)。本文档将详细介绍如何在Java中自定义类型转换器,并通过一个具体的例子来演示其使用方法。 #### 二、局部...

    C# 的类型转换.doc

    本文将深入探讨C#中的装箱、拆箱、别名、数值类型转换、字符编码转换、字符串与数值及数组之间的转换,以及日期型数据的转换。 1. **装箱、拆箱与别名** - **装箱** 是将值类型转换为对应的引用类型,例如 `int` ...

Global site tag (gtag.js) - Google Analytics