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整数
MONTH01 - 120 - 11
DAY01 - 31 (受MONTH和YEAR的数值,按⽇历的区域设置的规则)任何⾮0整数
HOUR00 - 230 - 23
MINUTE00 - 590 - 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函数名称 & 描述
1ADD_MONTHS(x, y);增加y个⽉到x
2LAST_DAY(x);
trunc函数使用时间返回该⽉的最后⼀天MONTHS_BETWEEN(x, y);
3MONTHS_BETWEEN(x, y);返回x和y之间的⽉数
4NEXT_DAY(x, day);
返回x后第⼆天的⽇期时间
5NEW_TIME;
返回从由⽤户指定的⼀个时区的时间/天的值
6ROUND(x [, unit]); x舍⼊;
7SYSDATE();
返回当前⽇期时间。
8TRUNC(x [, unit]);截断x
时间戳函数(其中,x是⼀个时间戳值):
S.N函数名称 & 描述
1CURRENT_TIMESTAMP();
返回包含当前会话时间以及会话时区的时区中的时间戳( TIMESTAMP WITH TIME ZONE)
2EXTRACT({ YEAR | MONTH | DAY | HOUR | MINUTE | SECOND } | { TIMEZONE_HOUR | TIMEZONE_MINUTE } | { TIMEZONE_REGION | } TIMEZONE_ABBR ) FROM x)
从x提取并返回年,⽉,⽇,时,分,秒,或时间;
3FROM_TZ(x, time_zone);
通过TIME_ZONE指定WITH TIMEZONE⼀个TIMESTAMP时间戳x和时区转换
4LOCALTIMESTAMP();
返回包含在会话时区的本地时间时间戳
5SYSTIMESTAMP();
返回含有当前数据库的时间以及数据库时区的时区中的时间戳(TIMESTAMP WITH TIME ZONE)
6SYS_EXTRACT_UTC(x);
WITH TIMEZONE X的TIMESTAMP转换为包含⽇期和时间UTC时间戳
7TO_TIMESTAMP(x, [format]);
将字符串x转换为⼀个TIMESTAMP
8TO_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函数名称 & 描述
1NUMTODSINTERVAL(x, interval_unit);
整数x转换为⼀个间隔(DAY TO SECOND)
2NUMTOYMINTERVAL(x, interval_unit);
x到时间间隔(YEAR TO MONTH)数的转换
3TO_DSINTERVAL(x);
将字符串x时间间隔(DAY TO SECOND)到秒转换
4TO_YMINTERVAL(x);
将字符串x时间间隔(YEAR TO MONTH)转换为整数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。