• SQL记录-PLSQL日期与时间


    PL/SQL日期及时间

    PL/SQL提供两个日期和时间相关的数据类型:

    • 日期时间(Datetime)数据类型

    • 间隔数据类型

    datetime数据类型有:

    • DATE

    • TIMESTAMP

    • TIMESTAMP WITH TIME ZONE

    • TIMESTAMP WITH LOCAL TIME ZONE

    间隔数据类型是:

    • INTERVAL YEAR TO MONTH

    • INTERVAL DAY TO SECOND

    日期时间字段值和间隔数据类型

    这两个日期时间和间隔数据类型包括字段。这些字段的值确定的数据类型的值。下表列出了时间和间隔的字段及其可能的值。

    字段名称有效日期时间值有效的间隔值
    YEAR -4712 to 9999 (除外0年) 任何非0整数
    MONTH 01 - 12 0 - 11
    DAY 01 - 31 (受MONTH和YEAR的数值,按日历的区域设置的规则) 任何非0整数
    HOUR 00 - 23 0 - 23
    MINUTE 00 - 59 0 - 59
    SECOND 00 to 59.9(n), 其中,9(n)是时间小数秒精度
    在9(n)的部分是不适用DATE。
    0 to 59.9(n), 其中,9(n)是区间小数秒精度
    TIMEZONE_HOUR -12 - 14 (适应范围夏令时更改)
    DATE 或 TIMESTAMP不适用.
    不适用
    TIMEZONE_MINUTE 00 - 59
    DATE 或 TIMESTAMP不适用.
    不适用
    TIMEZONE_REGION DATE 或 TIMESTAMP不适用. 不适用
    TIMEZONE_ABBR DATE 或 TIMESTAMP不适用. 不适用

    日期时间数据类型和函数

    下面是日期时间数据类型:

    • DATE - 它存储在字符和数字数据类型的日期和时间信息。它是由上世纪,年,月,日,时,分,秒的信息。它被指定为:

    • TIMESTAMP - 它是日期数据类型的扩展。它的年,月,日的日期数据类型的存储,以及小时,分钟和秒值。它是用于存储精确的时间值有用。

    • TIMESTAMP WITH TIME ZONE - 它是时间戳的变体,其中包括一个时区区域名称或时区中它的值偏移。时区偏移量是本地的时间和UTC之间的差值(以小时和分钟)。此数据类型是用于收集和计算跨越地理区域的最新信息有用。

    • TIMESTAMP WITH LOCAL TIME ZONE - 它是时间戳(TIMESTAMP )的另一种变型,其中包括一个时区中它的值偏移。

    下表列出了日期时间函数(其中,x有日期时间值):

    S.N函数名称 & 描述
    1 ADD_MONTHS(x, y);
    增加y个月到x
    2 LAST_DAY(x);
    返回该月的最后一天
    3 MONTHS_BETWEEN(x, y);
    返回x和y之间的月数
    4 NEXT_DAY(x, day);
    返回x后第二天的日期时间
    5 NEW_TIME;
    返回从由用户指定的一个时区的时间/天的值
    6 ROUND(x [, unit]);
    x舍入;
    7 SYSDATE();
    返回当前日期时间。
    8 TRUNC(x [, unit]);
    截断x

    时间戳函数(其中,x是一个时间戳值):

    S.N函数名称 & 描述
    1 CURRENT_TIMESTAMP();
    返回包含当前会话时间以及会话时区的时区中的时间戳( TIMESTAMP WITH TIME ZONE)
    2 EXTRACT({ YEAR | MONTH | DAY | HOUR | MINUTE | SECOND } | { TIMEZONE_HOUR | TIMEZONE_MINUTE } | { TIMEZONE_REGION | } TIMEZONE_ABBR ) FROM x)
    从x提取并返回年,月,日,时,分,秒,或时间;
    3 FROM_TZ(x, time_zone);
    通过TIME_ZONE指定WITH TIMEZONE一个TIMESTAMP时间戳x和时区转换
    4 LOCALTIMESTAMP();
    返回包含在会话时区的本地时间时间戳
    5 SYSTIMESTAMP();
    返回含有当前数据库的时间以及数据库时区的时区中的时间戳(TIMESTAMP WITH TIME ZONE)
    6 SYS_EXTRACT_UTC(x);
    WITH TIMEZONE X的TIMESTAMP转换为包含日期和时间UTC时间戳
    7 TO_TIMESTAMP(x, [format]);
    将字符串x转换为一个TIMESTAMP
    8 TO_TIMESTAMP_TZ(x, [format]);
    字符串x转换到WITH TIMEZONE时间戳

    示例:

    下面的代码段示出了使用上述函数功能:

    SELECT SYSDATE FROM DUAL;

    输出:

    08/31/2014 5:25:34 PM
    
    SELECT TO_CHAR(CURRENT_DATE, 'DD-MM-YYYY HH:MI:SS') FROM DUAL;

    输出:

    31-08-2014 05:26:14
    
    SELECT ADD_MONTHS(SYSDATE, 5) FROM DUAL;

    输出:

    01/31/2014 5:26:31 PM
    SELECT LOCALTIMESTAMP FROM DUAL;

    输出:

    8/31/2014 5:26:55.347000 PM
    

    间隔数据类型和函数

    以下是间隔数据类型:

    • INTERVAL YEAR TO MONTH - 它存储了一段时间的使用年份和月份日期时间字段

    • INTERVAL DAY TO SECOND - 它存储了一段时间中的天,小时,分钟和秒

    间隔函数:

    S.N函数名称 & 描述
    1 NUMTODSINTERVAL(x, interval_unit);
    整数x转换为一个间隔(DAY TO SECOND)
    2 NUMTOYMINTERVAL(x, interval_unit);
    x到时间间隔(YEAR TO MONTH)数的转换
    3 TO_DSINTERVAL(x);
    将字符串x时间间隔(DAY TO SECOND)到秒转换
    4 TO_YMINTERVAL(x);
    将字符串x时间间隔(YEAR TO MONTH)转换为整数
  • 相关阅读:
    2019浙江理工校赛有感
    问题 G: 跳马棋
    问题 H: 象棋对局胜负
    问题 C: 远离原点
    问题 B: 合并车厢
    Hibernate 异常汇总
    设计模式
    1.2.1.2.1.12.34.3.1.34.1.2
    数据结构和算法之 查找
    数据结构和算法之排序算法
  • 原文地址:https://www.cnblogs.com/xinfang520/p/7722053.html
Copyright © 2020-2023  润新知