zoukankan      html  css  js  c++  java
  • Oracle日期操作函数

    Oracle采用date类型表示日期时间,这是一个7字节的固定宽度的数据类型,有7个属性,包括:世纪、世纪中哪一年、月份、月中的哪一天、小时、分钟和秒。本文中把date类型称为日期时间类型,简称日期。

    对编程语言来说,日期是用字符串来显示和书写的,如果设置了NLS_DATE_FORMAT环境变量,Oracle可以自动的对日期和字符串进行转换,但是,程序员更多的是采用to_char和to_date两个函数对日期和字符串进行转换。

    一、把日期转换为字符串

    to_char函数把日期转换成字符串,一般用于 select 和 from 之间的字段列表中的日期输出,语法如下:

    to_char(日期,格式)
    

    日期格式用字符串来表达,格式控制标识如下,加粗显示的是常用的格式:

    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:年中的第几个星期。

    举例:

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    二、把字符串转换日期

    to_date函数把字符串转换成日期,一般用于insert、update和where之后的条件中的日期输入,语法如下:

    to_date(字符串表示的日期,格式)
    

    日期格式用字符串来表达,与to_char函数相同。

    先创建一个用于测试的表tt。

    create table tt ( c1 date);
    

    举列:

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    在update语句中把字符串转换为日期。

    在这里插入图片描述

    在where条件中把字符串转换为日期。

    在这里插入图片描述

    三、日期运算

    Oracle数据库提供了多种对日期加减的计算方法。

    为了方便日期的显示,先设置好NLS_DATE_FORMAT环境变量,这个环境变量的用法在本文的“四、日期环境变量”章节中介绍。

    export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
    

    1、直接加减

    可以在日期上进行加减一个小数(单位是天)得到一个新的时间。

    1)取当前时间和一天后的时间。

    在这里插入图片描述

    2)取当前时间和一小时后的时间。

    在这里插入图片描述

    3)获取当前时间和一秒后的时间。

    在这里插入图片描述

    2、add_months函数

    对日期直接加减的方式不用于月的加减,因为每月的天数不一样,例如2020-01-01,加上30天之后是2020-01-31,不是2020-02-01。如果希望把日期加上一个完整的月(不论月的大小),可以用add_months函数。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-df8b7N0G-1583890413413)(media/d5b79b4d06097b5768b3a66c6c0ce668.png)]

    从上面的例子可以看出,月有大有小:1)如果下月的天小于本月的天,add_months后取下月的最后一天;2)本月的最后一天加上一个月,就是下个月的最后一天。

    3、last_day函数

    last_day函数得到日期所属月份最后一天的时间。

    在这里插入图片描述

    4、其它的日期函数

    Oracle还提供了其它的日期计算的函数,如months_between、next_day、numtodsinterval和numtoyminterval等,在我看来,这些函数很烦人,实在没有意义,就不介绍了。

    四、日期环境变量

    NLS_DATE_FORMAT环境变量指定日期的输入和输入格式,如果字符串的格式与NLS_DATE_FORMAT指定的格式相同,Oracle可以自动转换,不需要to_char和to_date函数。

    export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
    

    在这里插入图片描述

    export NLS_DATE_FORMAT="yyyymmddhh24miss"
    

    在这里插入图片描述

    从上图的运行结果看出,修改NLS_DATE_FORMAT环境变量后,如果输入的日期格式不符,Oracle无法识别。

    五、版权声明

    C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
    来源:C语言技术网(www.freecplus.net)
    作者:码农有道

    如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!!

  • 相关阅读:
    网络基础
    python之bootstrap(组件,SweetAlert插件)
    python之网页小图标的使用
    python之bootstrap(基本)
    python之JQuery(批量操作,监听按键)
    python之JQuery(文档操作,事件委托,事件冒泡)
    python之JQuery(动画点赞实例)
    python之JQuery(hover,input值动态变化的实现)
    Less-1
    python100例 21-30
  • 原文地址:https://www.cnblogs.com/wucongzhou/p/12496321.html
Copyright © 2011-2022 走看看