PostgreSQL数据类型--日期时间类型

 2015年03月22日    6722     声明


PostgreSQL保存日期时间格式的数据类型有多种,主要有:TIME、DATE、TIMESTAMP、INTERVAL。日期时间类型输入像字符串类型输入一样,需要加单引号。每种日期时间类型都有合法的取值范围,超出范围时系统会将“零”插入数据记录中。


类型名称 存储空间 数据范围 说明 分辨率
TIME 8字节 00:00:00 ~ 24:00:00 时间类型(只用于一天内的时间)[无时区] 1毫秒/14位
TIME[with time zone] 12字节 00:00:00+1359~24:00:00-1359 时间类型(只用于一天内的时间)[含时区] 1毫秒/14位
DATE 4字节 4713 BC~32767 AD 只用于一天的日期 1天
TIMESTAMP 8字节 4713 BC~5874897 AD 日期和时间[无时区] 1毫秒/14位
TIMESTAMP[with time zone] 8字节 4713 BC~5874897 AD 日期和时间[含时区] 1毫秒/14位
INTERVAL 12字节 -178000000年~178000000年 时间间隔 1毫秒/14位


1.时间类型

时间类型是TIME和TIMEwith time zone,默认情况下为不带时区(即:TIME)。不带时区时间格式可接受输入方式有:HH:MM:SS、HH:MM、HHMMSS。带时间格式输入可用系统的NOW()函数。时间、时区输入参考如下。

时间输入:

示例 描述
04:05:06.789 ISO 8601
04:05:06 ISO 8601
04:05 ISO 8601
040506 ISO 8601
04:05 AM 与 04:05 一样;AM 不影响数值
04:05 PM 与 16:05一样;输入小时数必须 <= 12
04:05:06.789-8 ISO 8601
04:05:06-08:00 ISO 8601
04:05-08:00 ISO 8601
040506-08 ISO 8601
04:05:06 PST 用名字声明的时区

时区输入:

示例 描述
PST 太平洋标准时间(Pacific Standard Time)
-8:00 ISO-8601 与 PST 的偏移
-800 ISO-8601 与 PST 的偏移
-8 ISO-8601 与 PST 的偏移
zulu 某军方对 UTC 的缩写
z zulu的缩写


2.DATE类型

DATE类型用于仅需要日期值时,日期输入格式为:YYYY-MM-DD、YYYYMMDD。输入DATE类型数据时,可以使用字符串或数字类型的数据输入,符合DATE的日期格式即可。可以使用CURRENT_DATE或NOW()插入当前系统时间。


3. TIMESTAMP类型

时间戳类型的有效输入由一个日期和时间的联接组成,后面跟着一个可选的时区,一个可选的 AD 或者 BC。时间戳输入格式为:YYYY-MM-DD HH:MM:SS。带时区输入格式为:2015-03-22 4:05:06 -8:00


4.INTERVAL类型

INTERVAL类型输入格式如下:

quantity unit [quantity unit...] [direction]

quantity 是一个数字或符号; unit 是 second, minute, hour, day, week, month, year, decade, century, millennium, 或这些单位的缩写或复数; direction 可以是 ago 或者为空。符号 @ 是一个可选的东西。不同的单位以及相应正确的符号都是隐含地增加。