PL/SQL - 日期时间(Date&Time)

PL/SQL - 日期时间(Date&Time) 首页 / PL/SQL入门教程 / PL/SQL - 日期时间(Date&Time)

在本章中,无涯教程将讨论PL/SQL中的日期和时间。 PL/SQL中有两类与日期和时间相关的数据类型-

  • Datetime   -  数据类型 (DATE,TIMESTAMP,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITH LOCAL TIME ZONE)
  • Interval     -  数据类型 (INTERVAL TYPE TO MONTH,INTERVAL DAY TO SECOND)

Datetime&Interval字段值

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

Field NameValid Datetime ValuesValid Interval Values
YEAR-4712 to 9999(不包括0年)任何非零整数
MONTH01 to 120 to 11
DAY01 to 31任何非零整数
HOUR00 to 230 to 23
MINUTE00至590 to 59
SECOND

00到59.9(n),其中9(n)是时间分数秒的精度

0到59.9(n).其中9(n)是间隔小数秒的精度
TIMEZONE_HOUR

-12至14

Not applicable
TIMEZONE_MINUTE

00至59

Not applicable

下表提供了Datetime函数(其中,x具有datetime值)-

无涯教程网

S.NoFunction Name & 描述
1

ADD_MONTHS(x,y);

将 y 个月加到 x 。

2

LAST_DAY(x);

返回该月的最后一天。

3

MONTHS_BETWEEN(x,y);

返回 x 和 y 之间的月数。

4

NEXT_DAY(x,day);

返回 x 之后的下一个 day 的日期时间。

5

NEW_TIME;

从用户指定的时区返回时间/日期值。

6

ROUND(x [,unit]);

四舍五入 x 。

7

SYSDATE();

返回当前日期时间。

8

TRUNC(x [,unit]);

删除 x 。

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

S.NoFunction Name & 描述
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 x和time_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

SELECT SYSDATE FROM DUAL; 

输出-

08/31/2012 5:25:34 PM 

示例2

SELECT TO_CHAR(CURRENT_DATE, 'DD-MM-YYYY HH:MI:SS') FROM DUAL; 

输出-

31-08-2012 05:26:14

示例3

SELECT ADD_MONTHS(SYSDATE, 5) FROM DUAL;

输出-

01/31/2013 5:26:31 PM 

示例4

SELECT LOCALTIMESTAMP FROM DUAL; 

输出-

8/31/2012 5:26:55.347000 PM 

Interval类型和函数

以下是间隔数据类型-

  • 从YEAR到MONTH的间隔时间-使用YEAR和MONTH日期时间字段存储一段时间。

  • 第二天的间隔-以天,小时,分钟和秒为单位存储一段时间。

S.NoFunction Name & 描述
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。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

数据结构与算法之美 -〔王争〕

如何做好一场技术演讲 -〔极客时间〕

玩转Git三剑客 -〔苏玲〕

10x程序员工作法 -〔郑晔〕

软件工程之美 -〔宝玉〕

A/B测试从0到1 -〔张博伟〕

讲好故事 -〔涵柏〕

说透低代码 -〔陈旭〕

运维监控系统实战笔记 -〔秦晓辉〕

好记忆不如烂笔头。留下您的足迹吧 :)