PL/SQL 专题
您的位置:database > PL/SQL专题 > PL/SQL日期及时间
PL/SQL日期及时间
作者:--    发布时间:2019-11-20

在本章中,我们将讨论pl/sql中的日期和时间。 pl/sql中有两种与日期和时间相关的数据类型 -

  • 日期时间数据类型
  • 间隔数据类型

日期时间(datetime)数据类型是 -

  • date
  • timestamp
  • timestamp with time zone
  • timestamp with local time zone

间隔数据类型是 -

  • interval year to month
  • interval day to second

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

日期时间和时间间隔数据类型都由字段组成。这些字段的值决定了数据类型的值。下表列出了日期时间和间隔的字段及其可能的值。

字段名称 有效的日期时间值 有效的区间值
year -47129999(不包括0年) 任何四位非零整数
month 0112 011
day 0131(受monthyear的值限制,根据地区的日历规则) 任何非零整数
hour 0023 023
minute 0059 059
second 0059.9(n),其中9(n)是时间小数秒的精确度,9(n)部分不适用于date 059.9(n),其中9(n)是间隔小数秒的精确度
timezone_hour -1214(范围适应夏时制的变化),不适用于datetimestamp 不适用
timezone_minute 0059,不适用于datetimestamp 不适用
timezone_region 不适用于datetimestamp 不适用
timezone_abbr 不适用于datetimestamp 不适用

日期时间数据类型和函数

以下是datetime数据类型 -

date

它以字符和数字数据类型存储日期和时间信息。它由世纪,年,月,日,时,分,秒等信息组成。它被指定为 -

timestamp

它是date数据类型的扩展。它存储date数据类型的年份,月份和日期以及小时,分钟和秒值。这对于存储精确的时间值非常有用。

timestamp with time zone

它是timestamp的一个变体,其中包含时区名称或时区偏移量。时区偏移量是本地时间与utc之间的时差(小时和分钟)。此数据类型对于收集和评估跨地理区域的日期信息非常有用。

timestamp with local time zone

它是timestamp的另一个变体,它的值包括一个时区偏移量。下表提供了日期时间函数(其中,x具有日期时间值) -

编号 函数名称 描述
1 add_months(x, y); y个月添加到x
2 last_day(x); 返回月份的最后一天。
3 months_between(x, y); 返回xy之间的月数。
4 next_day(x, day); 返回x之后的第二天的日期时间。
5 new_time; 返回用户指定的时区的时间/日期值。
6 round(x [, unit]); 舍入x
7 sysdate(); 返回当前的日期时间。
8 trunc(x [, unit]); 截断x

时间戳函数(其中,x有时间戳值) -

编号 函数名称 描述
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); timestamp xtime_zone指定的时区转换为timestamp with timezone
4 localtimestamp(); 返回包含会话时区中本地时间的timestamp
5 systimestamp(); 返回包含当前数据库时间的timestamp with time zone以及数据库时区。
6 sys_extract_utc(x); timestamp with timezone x转换为包含utc中的日期和时间的timestamp
7 to_timestamp(x, [format]); 将字符串x转换为timestamp
8 to_timestamp_tz(x, [format]); 将字符串x转换为timestamp with timezone

例子

以下代码片段说明了上述函数的使用 -

示例1

sql> select sysdate from dual;

sysdate
--------------
07-11月-17

示例2

sql> select to_char(current_date, 'yyyy-mm-dd hh:mi:ss') from dual;

to_char(current_dat
-------------------
2017-11-07 05:26:07

示例3

sql> select add_months(sysdate, 5) from dual;

add_months(sys
--------------
07-4月 -18

示例4

sql> select localtimestamp from dual;

localtimestamp
---------------------------------------------------------------------------
07-11月-17 05.27.13.752000 上午

区间数据类型和函数

以下是区间数据类型 -

  • interval year to month - 它使用yearmonth日期时间字段存储一段时间。第二天至第二天 - 它以天,小时,分钟和秒存储一段时间。
  • interval day to second - 它以天,小时,分钟和秒的形式存储一段时间。

区间函数

编号 函数 描述
1 numtodsinterval(x, interval_unit); 将数字x转换为interval day to second
2 numtoyminterval(x, interval_unit); 将数字x转换为interval year to month
3 to_dsinterval(x); 将字符串x转换为interval day to second
4 to_yminterval(x); 将字符串x转换为interval year to month

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册