日期/时间/时间戳类型¶
日期类型¶
神通数据库中支持的日期类型如下表:
表26神通数据库支持的日期类型
| 类型 | 描述 | 存储 | 最早 | 最晚 | 精确度 |
|---|---|---|---|---|---|
| DATE | 日期类型 | 8 字节 | 4714-11-24 00:00:00 BC | 9999-12-31 23:59:59 AD | 1 秒 |
神通数据库中日期型常量由关键词DATE标识,后接一个由单引号括起的日期字符串。
- 输入格式
输入日期串的年、月、日域的顺序由配置参数DateOrder决定。DateOrder有三种可选值,分别为YMD(代表ISO格式)、DMY(代表EURO格式)和MDY(代表NONEURO或者US格式)。默认输入格式为YMD。例如当DateOrder为YMD时,串'2009-1-8'表示日期2009年1月8日。当DateOrder为DMY时,串'1-8-2009'表示日期2009年8月1日。当DateOrder为MDY时,串'1-8-2009'表示日期2009年1月8日。
神通数据库支持的日期类型输入方式如下表:
表27神通数据库支持的日期类型输入方式
| 例子 | 描述 |
|---|---|
| Jan 8,1999 | 在MDY格式下表示公元1999年1月8日,其他格式下报错。 |
| 1999-01-08 | 在YMD格式下表示公元1999年1月8日,其他格式下报错。 |
| 01-08-99 BC | 在DMY格式下表示公元前99年8月1日,在MDY格式下表示公元前99年1月8日,在YMD格式下报错。 |
| 1/8/12 | 在DMY格式下表示公元2012年8月1日,在MDY格式下表示公元2012年1月8日,在YMD格式下表示公元2001年8月12号。 |
| 19990108 | 在YMD格式下表示公元1999年1月8日,其他格式下报错。 |
| 1/18/1999 | 在MDY格式下表示公元1999年1月18日,其他格式下报错 |
| 990108 | 在YMD格式下表示公元1999年1月8日,其他格式下报错。 |
| 1999.008 | 在任何模式下都表示1999年里的第8天 |
| J2451187 | Julian day,在任何格式下都是同一天。 |
| January 8, 99 BC | 在MDY格式下表示公元前99年1月8日,其他格式下报错 |
| 08-Jan-50 | 在DMY格式下表示公元2050年1月8日,其他格式下报错。 |
示例1: 查看日期输入格式对 DATE 类型的影响
-- 查看日期输入格式对 DATE 类型的影响
-- 设置日期输入格式
SET DATEORDER = 'YMD';
SELECT '1-2-3'::DATE;
DATE(date) |
----------------
2001-02-03 |
总数目:1
-- 设置日期输入格式
SET DATEORDER = 'MDY';
SELECT '1-2-3'::DATE;
DATE(date) |
----------------
2003-01-02 |
总数目:1
-- 设置日期输入格式
SET DATEORDER = 'DMY';
SELECT '1-2-3'::DATE;
DATE(date) |
----------------
2003-02-01 |
总数目:1
-- 重置参数
RESET DATEORDER;
神通数据库提供了SQL92兼容的函数CURRENT_DATE,它可以直接用于日期类型数据的输入。
示例2: 使用 CURRENT_DATE
SELECT CURRENT_DATE;
-- 结果如下
CURRENT_DATE
--------------
2015-04-07
(1 row)
另外,为了方便,还支持下表中的特殊值,需要用单引号括起来,并强制转换成日期类型。
表28神通数据库支持的特殊值
| 特殊值 | 描述 | 举例 |
|---|---|---|
| infinity | 在任何格式下都表示日期的极大值。 | select ' infinity '::date; |
| -infinity | 在任何格式下都表示日期的极小值。 | select ' -infinity '::date; |
| epoch | 在任何格式下都表示公元1970年1月1日(UNIX系统零时). | select ' epoch '::date; |
| now | 在任何格式下都表示当前系统的日期 | select ' now '::date; |
| today | 同now. | select ' today '::date; |
| tomorrow | now的后一天。 | select 'tomorrow'::date; |
| yesterday | now的前一天。 | select 'yesterday'::date; |
- 输出格式
日期的输出格式由配置参数DateStyle决定。配置参数DateStyle有三种可选值,分别为YMD(代表ISO格式)、DMY(代表EURO格式)和MDY(代表NONEURO或者US格式),表示日期的输出格式。默认输出格式为YMD。不管以何种格式输出,输出的年份都以四位数字表示,月和日都以二位数字表示。例如公元1998年1月8日和公元前267年9月2日在不同格式下显示出来的结果如下:
YMD格式------1998-01-08和 0267-09-02 BC
DMY格式------08.01.1998 和 02.09.0267 BC
MDY格式------01/08/1998 和 09/02/0267 BC
示例3: 查看日期输出格式对 DATE 类型的影响
-- 查看日期输出格式对 DATE 类型的影响
-- 设置日期输出格式
SET DATESTYLE = 'YMD';
SELECT '2001-2-3'::DATE;
DATE(date) |
----------------
2001-02-03 |
总数目:1
-- 设置日期输出格式
SET DATESTYLE = 'MDY';
SELECT '2001-2-3'::DATE;
DATE(date) |
----------------
2001-02-03 |
总数目:1
-- 设置日期输出格式
SET DATESTYLE = 'DMY';
SELECT '2001-2-3'::DATE;
DATE(date) |
----------------
2001-02-03 |
总数目:1
-- 重置参数
RESET DATESTYLE;
注解
DateStyle与DateOrder虽然可选值是一样的,但是却有着不同的作用。 DateStyle标记的是DATE类型的输出格式,而DateOrder标记的是DATE类型的输入格式,作用域不同并且互不干扰。
- 带有时间信息的输入、输出格式
带有时间信息的输入、输出格式由配置参数DATEFORMAT决定。
DATEFORMAT 默认值为'',表示DATE类型不带有时间信息;其他值(DATETIME格式模型),比如'YYYY-MM-DD HH24:MI:SS',则表示DATE类型带有时间信息。
示例4: 查看带有时间信息的输入、输出格式对 DATE 类型的影响
-- 清理环境
DROP TABLE tab1 CASCADE;
-- 设置参数
SET DATEORDER = 'YMD';
SET DATESTYLE = 'YMD';
SET DATEFORMAT = '';
-- 创建包含 DATE 列的表
CREATE TABLE tab1(a INT, b DATE);
-- 插入不带时间信息的DATE数据,成功
INSERT INTO tab1 VALUES(1, '1999-12-31');
-- 插入不带时间信息的DATE数据,成功
INSERT INTO tab1 VALUES(2, '1999-12-31 00:00:00');
INSERT INTO tab1 VALUES(3, '1999-12-31 12:13:14');
-- 查看 DATE 类型数据,不带时间信息
SELECT * FROM tab1 ORDER BY a;
A(int) |B(date) |
-------------------------
1 |1999-12-31 |
-------------------------
2 |1999-12-31 |
-------------------------
3 |1999-12-31 |
总数目:3
-- 设置带有时间信息的DATE类型输入、输出格式
SET DATEFORMAT = 'YYYY-MM-DD HH24:MI:SS';
-- 查看 DATE 类型数据,带有时间信息
SELECT a, b::text FROM tab1 ORDER BY a;
A(int) |B(text) |
-------------------------
1 |1999-12-31 00|
|:00:00 |
-------------------------
2 |1999-12-31 00|
|:00:00 |
-------------------------
3 |1999-12-31 12|
|:13:14 |
总数目:3
-- 清理环境
DROP TABLE tab1;
-- 重置参数
RESET DATEFORMAT;
RESET DATEORDER;
RESET DATESTYLE;
注解
时间类型¶
神通数据库中提供的时间类型如下表:
表29神通数据库支持的时间类型
| 类型 | 描述 | 存储 | 最早 | 最晚 | 精确度 |
|---|---|---|---|---|---|
| TIME[(p)] | 时间类型,只用于一日内时间 | 8 字节 | 00:00:00 | 23:59:59.999999 | 1微秒 |
神通数据库的TIME[(p)]类型接受一个可选的精度值 p,这个精度值声明了秒域小数点之后可以保留的最大位数。取值范围是[0,6],即最大可精确到微秒。如果不指定p的值,则默认为用户输入的精度,但最大不超过6。当p被指定为1到5时,如果输入的小数位数超过p位,则根据p+1位的值四舍五入至p位,当p被指定为6或者不被指定时,如果输入的小数位数超出6位,则超出部分直接截断。
神通数据库中时间型常量由关键词TIME标识,后接一个由单引号括起的格式为"时:分:秒"的时间字符串, 单引号应看作是时间串的一部分不能缺少。如:TIME '11:20:45'
下表中列出了神通数据库支持的时间输入格式:
表210神通数据库支持的时间输入格式
| 例子 | 描述 |
|---|---|
| 06:AM | 等价于06:00:00. |
| 04:05:06.789 | 标准格式。 |
| 04:05:06 | 标准格式。 |
| 04:05 | 标准格式,等价于04:05:00. |
| 040506 | 标准格式,等价于04:05:06. |
| 04:05 AM | 等价于04:05:00.输入小时数必须在[1,12]内 |
| 04:05 PM | 等价于16:05:00.输入小时数必须在[1,12]内 |
| allballs | 含义同00:00:00 |
下表中列出了神通数据库12小时制和24小时制的时间对应关系:
表211神通数据库12小时制和24小时制的时间对应关系
| 12小时制 | 24小时制 |
|---|---|
| 01:00:00 AM到11:59:59.999999 AM | 01:00:00到11:59:59.999999 |
| 12:00:00 AM到12:59:59.999999 AM | 00:00:00到00:59:59.999999 |
| 01:00:00 PM到11:59:59.999999 PM | 13:00:00到23:59:59.999999 |
| 12:00:00 PM到12:59:59.999999 PM | 12:00:00到12:59:59.999999 |
示例4: 使用时间类型
DROP TABLE tab1 CASCADE;
CREATE TABLE tab1(a TIME);
-- 插入时间类型
INSERT INTO tab1 VALUES('04:05:06.789');
INSERT INTO tab1 VALUES('04:05:06');
INSERT INTO tab1 VALUES('04:05 AM');
INSERT INTO tab1 VALUES('04:05 PM');
INSERT INTO tab1 VALUES('ALLBALLS');
-- 查看时间类型
SELECT * FROM tab1 ORDER BY a;
A(time) |
-------------
00:00:00 |
-------------
04:05:00 |
-------------
04:05:06 |
-------------
04:05:06.789 |
-------------
16:05:00 |
总数目:5
-- 删除表
DROP TABLE tab1;
神通数据库提供了SQL兼容的时间函数 CURRENT_TIME ,可以用于时间类型数据的输入。如:
示例5: 使用 CURRENT_TIME
SELECT CURRENT_TIME;
-- 结果如下
NOW
-----------------
15:42:35.702388
(1 row)
另外,为了方便,神通数据库还支持下表中的特殊值,但这些值需要用单引号括起来,并强制转换成时间类型。
表212神通数据库支持的特殊值
| 特殊值 | 描述 | 举例 |
|---|---|---|
| now | 当前事务时间 | select 'now'::time; |
- 输入格式
TIME类型的输入格式为:
hour:[minute[:second[.microsecond]]] [AM/PM],其中AM和PM不区分大小写。对于可缺省的部分默认为0。
- 输出格式
TIME类型的输出格式为:
hour:minute:second[.microsecond],小时采用的是24小时制。microsecond输出的位数由存储数据本身决定,但最多不超过6位。
带时区时间类型¶
表213神通数据库支持的带时间区时间类型
| 类型 | 描述 | 存储 |
|---|---|---|
| TIME[(p)] WITH TIME ZONE | 带时区时间类型 | 12字节 |
TIME WITH TIME ZONE类型时间部分的表示范围以及精度同TIME类型,时区部分的表示范围是[-12:59,+14:00],精度为1分钟。
- 输入格式
TIME WITH TIME ZONE类型由时间和时区两部分组成,时间串的输入格式同TIME类型的输入格式,时区可以不输入,如果不输入则默认为服务器系统时区。如果时区信息存在,则最多有一个,多了会报错。时区串的位置与时间串的位置可以互换,所表示的时间是一样的。例如'1:2:3 -07:00'与'-07:00 1:2:3'表示同一个时间。时区串、时间串和日期串之间建议使用空格分隔,否则可能会出现一些无法预料的问题。
时区有三种输入方式:
通过时间偏移来指定时区,即+/-tz_hour[:tz_minute]。采取这种方式输入时区时+/-不可省略,小时域不可缺省,分钟域可缺省,缺省默认为0。tz_hour的范围是[-12,14],tz_minute的范围是[0,59]。输入格式举例如下表:
表214神通数据库的时间偏移时区输入格式
| 例子 | 描述 |
|---|---|
| +9 | 比格林威治时间快9小时,+9表示东9区。 |
| -9 | 比格林威治时间慢9小时,-9表示西9区。 |
| +9:05 | 比格林威治时间快9小时5分。 |
| -08:59 | 比格林威治时间慢8小时59分。 |
通过地理地名来指定时区,即tzname。OSCAR支持的地理地名、地名对应的时间偏移及此地理名代表的时区是否是夏令时如下表所示:
表215神通数据库支持的时区地理地名对应的时间偏移
| name | utc_offset | is_dst |
|---|---|---|
| Africa/Abidjan | 00:00 | f |
| Africa/Accra | 00:00 | f |
| Africa/Addis_Ababa | 03:00 | f |
| Africa/Algiers | 01:00 | f |
| Africa/Asmara | 03:00 | f |
| Africa/Asmera | 03:00 | f |
| Africa/Bamako | 00:00 | f |
| Africa/Bangui | 01:00 | f |
| Africa/Banjul | 00:00 | f |
| Africa/Bissau | 00:00 | f |
| Africa/Blantyre | 02:00 | f |
| Africa/Brazzaville | 01:00 | f |
| Africa/Bujumbura | 02:00 | f |
| Africa/Cairo | 02:00 | f |
| Africa/Casablanca | 00:00 | f |
| Africa/Ceuta | 01:00 | f |
| Africa/Conakry | 00:00 | f |
| Africa/Dakar | 00:00 | f |
| Africa/Dar_es_Salaam | 03:00 | f |
| Africa/Djibouti | 03:00 | f |
| Africa/Douala | 01:00 | f |
| Africa/El_Aaiun | 00:00 | f |
| Africa/Freetown | 00:00 | f |
| Africa/Gaborone | 02:00 | f |
| Africa/Harare | 02:00 | f |
| Africa/Johannesburg | 02:00 | f |
| Africa/Kampala | 03:00 | f |
| Africa/Khartoum | 03:00 | f |
| Africa/Kigali | 02:00 | f |
| Africa/Kinshasa | 01:00 | f |
| Africa/Lagos | 01:00 | f |
| Africa/Libreville | 01:00 | f |
| Africa/Lome | 00:00 | f |
| Africa/Luanda | 01:00 | f |
| Africa/Lubumbashi | 02:00 | f |
| Africa/Lusaka | 02:00 | f |
| Africa/Malabo | 01:00 | f |
| Africa/Maputo | 02:00 | f |
| Africa/Maseru | 02:00 | f |
| Africa/Mbabane | 02:00 | f |
| Africa/Mogadishu | 03:00 | f |
| Africa/Monrovia | 00:00 | f |
| Africa/Nairobi | 03:00 | f |
| Africa/Ndjamena | 01:00 | f |
| Africa/Niamey | 01:00 | f |
| Africa/Nouakchott | 00:00 | f |
| Africa/Ouagadougou | 00:00 | f |
| Africa/Porto-Novo | 01:00 | f |
| Africa/Sao_Tome | 00:00 | f |
| Africa/Timbuktu | 00:00 | f |
| Africa/Tripoli | 02:00 | f |
| Africa/Tunis | 01:00 | f |
| Africa/Windhoek | 02:00 | t |
| America/Adak | -10:00 | f |
| America/Anchorage | -09:00 | f |
| America/Anguilla | -04:00 | f |
| America/Antigua | -04:00 | f |
| America/Araguaina | -03:00 | f |
| America/Argentina/Buenos_Aires | -03:00 | f |
| America/Argentina/Catamarca | -03:00 | f |
| America/Argentina/ComodRivadavia | -03:00 | f |
| America/Argentina/Cordoba | -03:00 | f |
| America/Argentina/Jujuy | -03:00 | f |
| America/Argentina/La_Rioja | -03:00 | f |
| America/Argentina/Mendoza | -03:00 | f |
| America/Argentina/Rio_Gallegos | -03:00 | f |
| America/Argentina/Salta | -03:00 | f |
| America/Argentina/San_Juan | -03:00 | f |
| America/Argentina/San_Luis | -03:00 | t |
| America/Argentina/Tucuman | -03:00 | f |
| America/Argentina/Ushuaia | -03:00 | f |
| America/Aruba | -04:00 | f |
| America/Asuncion | -03:00 | t |
| America/Atikokan | -05:00 | f |
| America/Atka | -10:00 | f |
| America/Bahia | -03:00 | f |
| America/Barbados | -04:00 | f |
| America/Belem | -03:00 | f |
| America/Belize | -06:00 | f |
| America/Blanc-Sablon | -04:00 | f |
| America/Boa_Vista | -04:00 | f |
| America/Bogota | -05:00 | f |
| America/Boise | -07:00 | f |
| America/Buenos_Aires | -03:00 | f |
| America/Cambridge_Bay | -07:00 | f |
| America/Campo_Grande | -04:00 | f |
| America/Cancun | -06:00 | f |
| America/Caracas | -04:30 | f |
| America/Catamarca | -03:00 | f |
| America/Cayenne | -03:00 | f |
| America/Cayman | -05:00 | f |
| America/Chicago | -06:00 | f |
| America/Chihuahua | -07:00 | f |
| America/Coral_Harbour | -05:00 | f |
| America/Cordoba | -03:00 | f |
| America/Costa_Rica | -06:00 | f |
| America/Cuiaba | -04:00 | f |
| America/Curacao | -04:00 | f |
| America/Danmarkshavn | 00:00 | f |
| America/Dawson | -08:00 | f |
| America/Dawson_Creek | -07:00 | f |
| America/Denver | -07:00 | f |
| America/Detroit | -05:00 | f |
| America/Dominica | -04:00 | f |
| America/Edmonton | -07:00 | f |
| America/Eirunepe | -04:00 | f |
| America/El_Salvador | -06:00 | f |
| America/Ensenada | -08:00 | f |
| America/Fort_Wayne | -05:00 | f |
| America/Fortaleza | -03:00 | f |
| America/Glace_Bay | -04:00 | f |
| America/Godthab | -03:00 | f |
| America/Goose_Bay | -04:00 | f |
| America/Grand_Turk | -05:00 | f |
| America/Grenada | -04:00 | f |
| America/Guadeloupe | -04:00 | f |
| America/Guatemala | -06:00 | f |
| America/Guayaquil | -05:00 | f |
| America/Guyana | -04:00 | f |
| America/Halifax | -04:00 | f |
| America/Havana | -05:00 | f |
| America/Hermosillo | -07:00 | f |
| America/Indiana/Indianapolis | -05:00 | f |
| America/Indiana/Knox | -06:00 | f |
| America/Indiana/Marengo | -05:00 | f |
| America/Indiana/Petersburg | -05:00 | f |
| America/Indiana/Tell_City | -06:00 | f |
| America/Indiana/Vevay | -05:00 | f |
| America/Indiana/Vincennes | -05:00 | f |
| America/Indiana/Winamac | -05:00 | f |
| America/Indianapolis | -05:00 | f |
| America/Inuvik | -07:00 | f |
| America/Iqaluit | -05:00 | f |
| America/Jamaica | -05:00 | f |
| America/Jujuy | -03:00 | f |
| America/Juneau | -09:00 | f |
| America/Kentucky/Louisville | -05:00 | f |
| America/Kentucky/Monticello | -05:00 | f |
| America/Knox_IN | -06:00 | f |
| America/La_Paz | -04:00 | f |
| America/Lima | -05:00 | f |
| America/Los_Angeles | -08:00 | f |
| America/Louisville | -05:00 | f |
| America/Maceio | -03:00 | f |
| America/Managua | -06:00 | f |
| America/Manaus | -04:00 | f |
| America/Marigot | -04:00 | f |
| America/Martinique | -04:00 | f |
| America/Mazatlan | -07:00 | f |
| America/Mendoza | -03:00 | f |
| America/Menominee | -06:00 | f |
| America/Merida | -06:00 | f |
| America/Mexico_City | -06:00 | f |
| America/Miquelon | -03:00 | f |
| America/Moncton | -04:00 | f |
| America/Monterrey | -06:00 | f |
| America/Montevideo | -02:00 | t |
| America/Montreal | -05:00 | f |
| America/Montserrat | -04:00 | f |
| America/Nassau | -05:00 | f |
| America/New_York | -05:00 | f |
| America/Nipigon | -05:00 | f |
| America/Nome | -09:00 | f |
| America/Noronha | -02:00 | f |
| America/North_Dakota/Center | -06:00 | f |
| America/North_Dakota/New_Salem | -06:00 | f |
| America/Panama | -05:00 | f |
| America/Pangnirtung | -05:00 | f |
| America/Paramaribo | -03:00 | f |
| America/Phoenix | -07:00 | f |
| America/Port-au-Prince | -05:00 | f |
| America/Port_of_Spain | -04:00 | f |
| America/Porto_Acre | -04:00 | f |
| America/Porto_Velho | -04:00 | f |
| America/Puerto_Rico | -04:00 | f |
| America/Rainy_River | -06:00 | f |
| America/Rankin_Inlet | -06:00 | f |
| America/Recife | -03:00 | f |
| America/Regina | -06:00 | f |
| America/Resolute | -05:00 | f |
| America/Rio_Branco | -04:00 | f |
| America/Rosario | -03:00 | f |
| America/Santarem | -03:00 | f |
| America/Santiago | -03:00 | t |
| America/Santo_Domingo | -04:00 | f |
| America/Sao_Paulo | -03:00 | f |
| America/Scoresbysund | -01:00 | f |
| America/Shiprock | -07:00 | f |
| America/St_Barthelemy | -04:00 | f |
| America/St_Johns | -03:30 | f |
| America/St_Kitts | -04:00 | f |
| America/St_Lucia | -04:00 | f |
| America/St_Thomas | -04:00 | f |
| America/St_Vincent | -04:00 | f |
| America/Swift_Current | -06:00 | f |
| America/Tegucigalpa | -06:00 | f |
| America/Thule | -04:00 | f |
| America/Thunder_Bay | -05:00 | f |
| America/Tijuana | -08:00 | f |
| America/Toronto | -05:00 | f |
| America/Tortola | -04:00 | f |
| America/Vancouver | -08:00 | f |
| America/Virgin | -04:00 | f |
| America/Whitehorse | -08:00 | f |
| America/Winnipeg | -06:00 | f |
| America/Yakutat | -09:00 | f |
| America/Yellowknife | -07:00 | f |
| Antarctica/Casey | 11:00 | f |
| Antarctica/Davis | 05:00 | f |
| Antarctica/DumontDUrville | 10:00 | f |
| Antarctica/Mawson | 05:00 | f |
| Antarctica/McMurdo | 13:00 | t |
| Antarctica/Palmer | -03:00 | t |
| Antarctica/Rothera | -03:00 | f |
| Antarctica/South_Pole | 13:00 | t |
| Antarctica/Syowa | 03:00 | f |
| Antarctica/Vostok | 06:00 | f |
| Arctic/Longyearbyen | 01:00 | f |
| Asia/Aden | 03:00 | f |
| Asia/Almaty | 06:00 | f |
| Asia/Amman | 02:00 | f |
| Asia/Anadyr | 12:00 | f |
| Asia/Aqtau | 05:00 | f |
| Asia/Aqtobe | 05:00 | f |
| Asia/Ashgabat | 05:00 | f |
| Asia/Ashkhabad | 05:00 | f |
| Asia/Baghdad | 03:00 | f |
| Asia/Bahrain | 03:00 | f |
| Asia/Baku | 04:00 | f |
| Asia/Bangkok | 07:00 | f |
| Asia/Beirut | 02:00 | f |
| Asia/Bishkek | 06:00 | f |
| Asia/Brunei | 08:00 | f |
| Asia/Calcutta | 05:30 | f |
| Asia/Choibalsan | 08:00 | f |
| Asia/Chongqing | 08:00 | f |
| Asia/Chungking | 08:00 | f |
| Asia/Colombo | 05:30 | f |
| Asia/Dacca | 07:00 | t |
| Asia/Damascus | 02:00 | f |
| Asia/Dhaka | 07:00 | t |
| Asia/Dili | 09:00 | f |
| Asia/Dubai | 04:00 | f |
| Asia/Dushanbe | 05:00 | f |
| Asia/Gaza | 02:00 | f |
| Asia/Harbin | 08:00 | f |
| Asia/Ho_Chi_Minh | 07:00 | f |
| Asia/Hong_Kong | 08:00 | f |
| Asia/Hovd | 07:00 | f |
| Asia/Irkutsk | 08:00 | f |
| Asia/Istanbul | 02:00 | f |
| Asia/Jakarta | 07:00 | f |
| Asia/Jayapura | 09:00 | f |
| Asia/Jerusalem | 02:00 | f |
| Asia/Kabul | 04:30 | f |
| Asia/Kamchatka | 12:00 | f |
| Asia/Karachi | 05:00 | f |
| Asia/Kashgar | 08:00 | f |
| Asia/Kathmandu | 05:45 | f |
| Asia/Katmandu | 05:45 | f |
| Asia/Kolkata | 05:30 | f |
| Asia/Krasnoyarsk | 07:00 | f |
| Asia/Kuala_Lumpur | 08:00 | f |
| Asia/Kuching | 08:00 | f |
| Asia/Kuwait | 03:00 | f |
| Asia/Macao | 08:00 | f |
| Asia/Macau | 08:00 | f |
| Asia/Magadan | 11:00 | f |
| Asia/Makassar | 08:00 | f |
| Asia/Manila | 08:00 | f |
| Asia/Muscat | 04:00 | f |
| Asia/Nicosia | 02:00 | f |
| Asia/Novokuznetsk | 07:00 | f |
| Asia/Novosibirsk | 06:00 | f |
| Asia/Omsk | 06:00 | f |
| Asia/Oral | 05:00 | f |
| Asia/Phnom_Penh | 07:00 | f |
| Asia/Pontianak | 07:00 | f |
| Asia/Pyongyang | 09:00 | f |
| Asia/Qatar | 03:00 | f |
| Asia/Qyzylorda | 06:00 | f |
| Asia/Rangoon | 06:30 | f |
| Asia/Riyadh | 03:00 | f |
| Asia/Saigon | 07:00 | f |
| Asia/Sakhalin | 10:00 | f |
| Asia/Samarkand | 05:00 | f |
| Asia/Seoul | 09:00 | f |
| Asia/Shanghai | 08:00 | f |
| Asia/Singapore | 08:00 | f |
| Asia/Taipei | 08:00 | f |
| Asia/Tashkent | 05:00 | f |
| Asia/Tbilisi | 04:00 | f |
| Asia/Tehran | 03:30 | f |
| Asia/Tel_Aviv | 02:00 | f |
| Asia/Thimbu | 06:00 | f |
| Asia/Thimphu | 06:00 | f |
| Asia/Tokyo | 09:00 | f |
| Asia/Ujung_Pandang | 08:00 | f |
| Asia/Ulaanbaatar | 08:00 | f |
| Asia/Ulan_Bator | 08:00 | f |
| Asia/Urumqi | 08:00 | f |
| Asia/Vientiane | 07:00 | f |
| Asia/Vladivostok | 10:00 | f |
| Asia/Yakutsk | 09:00 | f |
| Asia/Yekaterinburg | 05:00 | f |
| Asia/Yerevan | 04:00 | f |
| Atlantic/Azores | -01:00 | f |
| Atlantic/Bermuda | -04:00 | f |
| Atlantic/Canary | 00:00 | f |
| Atlantic/Cape_Verde | -01:00 | f |
| Atlantic/Faeroe | 00:00 | f |
| Atlantic/Faroe | 00:00 | f |
| Atlantic/Jan_Mayen | 01:00 | f |
| Atlantic/Madeira | 00:00 | f |
| Atlantic/Reykjavik | 00:00 | f |
| Atlantic/South_Georgia | -02:00 | f |
| Atlantic/St_Helena | 00:00 | f |
| Atlantic/Stanley | -03:00 | t |
| Australia/ACT | 11:00 | t |
| Australia/Adelaide | 10:30 | t |
| Australia/Brisbane | 10:00 | f |
| Australia/Broken_Hill | 10:30 | t |
| Australia/Canberra | 11:00 | t |
| Australia/Currie | 11:00 | t |
| Australia/Darwin | 09:30 | f |
| Australia/Eucla | 08:45 | f |
| Australia/Hobart | 11:00 | t |
| Australia/LHI | 11:00 | t |
| Australia/Lindeman | 10:00 | f |
| Australia/Lord_Howe | 11:00 | t |
| Australia/Melbourne | 11:00 | t |
| Australia/North | 09:30 | f |
| Australia/NSW | 11:00 | t |
| Australia/Perth | 08:00 | f |
| Australia/Queensland | 10:00 | f |
| Australia/South | 10:30 | t |
| Australia/Sydney | 11:00 | t |
| Australia/Tasmania | 11:00 | t |
| Australia/Victoria | 11:00 | t |
| Australia/West | 08:00 | f |
| Australia/Yancowinna | 10:30 | t |
| Brazil/Acre | -04:00 | f |
| Brazil/DeNoronha | -02:00 | f |
| Brazil/East | -03:00 | f |
| Brazil/West | -04:00 | f |
| Canada/Atlantic | -04:00 | f |
| Canada/Central | -06:00 | f |
| Canada/East-Saskatchewan | -06:00 | f |
| Canada/Eastern | -05:00 | f |
| Canada/Mountain | -07:00 | f |
| Canada/Newfoundland | -03:30 | f |
| Canada/Pacific | -08:00 | f |
| Canada/Saskatchewan | -06:00 | f |
| Canada/Yukon | -08:00 | f |
| CET | 01:00 | f |
| Chile/Continental | -03:00 | t |
| Chile/EasterIsland | -05:00 | t |
| CST6CDT | -06:00 | f |
| Cuba | -05:00 | f |
| EET | 02:00 | f |
| Egypt | 02:00 | f |
| Eire | 00:00 | f |
| EST | -05:00 | f |
| EST5EDT | -05:00 | f |
| Etc/GMT | 00:00 | f |
| Etc/GMT-0 | 00:00 | f |
| Etc/GMT-1 | 01:00 | f |
| Etc/GMT-10 | 10:00 | f |
| Etc/GMT-11 | 11:00 | f |
| Etc/GMT-12 | 12:00 | f |
| Etc/GMT-13 | 13:00 | f |
| Etc/GMT-14 | 14:00 | f |
| Etc/GMT-2 | 02:00 | f |
| Etc/GMT-3 | 03:00 | f |
| Etc/GMT-4 | 04:00 | f |
| Etc/GMT-5 | 05:00 | f |
| Etc/GMT-6 | 06:00 | f |
| Etc/GMT-7 | 07:00 | f |
| Etc/GMT-8 | 08:00 | f |
| Etc/GMT-9 | 09:00 | f |
| Etc/GMT+0 | 00:00 | f |
| Etc/GMT+1 | -01:00 | f |
| Etc/GMT+10 | -10:00 | f |
| Etc/GMT+11 | -11:00 | f |
| Etc/GMT+12 | -12:00 | f |
| Etc/GMT+2 | -02:00 | f |
| Etc/GMT+3 | -03:00 | f |
| Etc/GMT+4 | -04:00 | f |
| Etc/GMT+5 | -05:00 | f |
| Etc/GMT+6 | -06:00 | f |
| Etc/GMT+7 | -07:00 | f |
| Etc/GMT+8 | -08:00 | f |
| Etc/GMT+9 | -09:00 | f |
| Etc/GMT0 | 00:00 | f |
| Etc/Greenwich | 00:00 | f |
| Etc/UCT | 00:00 | f |
| Etc/Universal | 00:00 | f |
| Etc/UTC | 00:00 | f |
| Etc/Zulu | 00:00 | f |
| Europe/Amsterdam | 01:00 | f |
| Europe/Andorra | 01:00 | f |
| Europe/Athens | 02:00 | f |
| Europe/Belfast | 00:00 | f |
| Europe/Belgrade | 01:00 | f |
| Europe/Berlin | 01:00 | f |
| Europe/Bratislava | 01:00 | f |
| Europe/Brussels | 01:00 | f |
| Europe/Bucharest | 02:00 | f |
| Europe/Budapest | 01:00 | f |
| Europe/Chisinau | 02:00 | f |
| Europe/Copenhagen | 01:00 | f |
| Europe/Dublin | 00:00 | f |
| Europe/Gibraltar | 01:00 | f |
| Europe/Guernsey | 00:00 | f |
| Europe/Helsinki | 02:00 | f |
| Europe/Isle_of_Man | 00:00 | f |
| Europe/Istanbul | 02:00 | f |
| Europe/Jersey | 00:00 | f |
| Europe/Kaliningrad | 02:00 | f |
| Europe/Kiev | 02:00 | f |
| Europe/Lisbon | 00:00 | f |
| Europe/Ljubljana | 01:00 | f |
| Europe/London | 00:00 | f |
| Europe/Luxembourg | 01:00 | f |
| Europe/Madrid | 01:00 | f |
| Europe/Malta | 01:00 | f |
| Europe/Mariehamn | 02:00 | f |
| Europe/Minsk | 02:00 | f |
| Europe/Monaco | 01:00 | f |
| Europe/Moscow | 03:00 | f |
| Europe/Nicosia | 02:00 | f |
| Europe/Oslo | 01:00 | f |
| Europe/Paris | 01:00 | f |
| Europe/Podgorica | 01:00 | f |
| Europe/Prague | 01:00 | f |
| Europe/Riga | 02:00 | f |
| Europe/Rome | 01:00 | f |
| Europe/Samara | 04:00 | f |
| Europe/San_Marino | 01:00 | f |
| Europe/Sarajevo | 01:00 | f |
| Europe/Simferopol | 02:00 | f |
| Europe/Skopje | 01:00 | f |
| Europe/Sofia | 02:00 | f |
| Europe/Stockholm | 01:00 | f |
| Europe/Tallinn | 02:00 | f |
| Europe/Tirane | 01:00 | f |
| Europe/Tiraspol | 02:00 | f |
| Europe/Uzhgorod | 02:00 | f |
| Europe/Vaduz | 01:00 | f |
| Europe/Vatican | 01:00 | f |
| Europe/Vienna | 01:00 | f |
| Europe/Vilnius | 02:00 | f |
| Europe/Volgograd | 03:00 | f |
| Europe/Warsaw | 01:00 | f |
| Europe/Zagreb | 01:00 | f |
| Europe/Zaporozhye | 02:00 | f |
| Europe/Zurich | 01:00 | f |
| GB | 00:00 | f |
| GB-Eire | 00:00 | f |
| GMT | 00:00 | f |
| GMT-0 | 00:00 | f |
| GMT-1 | 01:00 | f |
| GMT-2 | 02:00 | f |
| GMT-3 | 03:00 | f |
| GMT-4 | 04:00 | f |
| GMT-5 | 05:00 | f |
| GMT-6 | 06:00 | f |
| GMT-7 | 07:00 | f |
| GMT-8 | 08:00 | f |
| GMT-9 | 09:00 | f |
| GMT-10 | 10:00 | f |
| GMT-11 | 11:00 | f |
| GMT-12 | 12:00 | f |
| GMT-13 | 13:00 | f |
| GMT-14 | 14:00 | f |
| GMT+0 | 00:00 | f |
| GMT+1 | -01:00 | f |
| GMT+2 | -02:00 | f |
| GMT+3 | -03:00 | f |
| GMT+4 | -04:00 | f |
| GMT+5 | -05:00 | f |
| GMT+6 | -06:00 | f |
| GMT+7 | -07:00 | f |
| GMT+8 | -08:00 | f |
| GMT+9 | -09:00 | f |
| GMT+10 | -10:00 | f |
| GMT+11 | -11:00 | f |
| GMT+12 | -12:00 | f |
| GMT0 | 00:00 | f |
| Greenwich | 00:00 | f |
| Hongkong | 08:00 | f |
| HST | -10:00 | f |
| Iceland | 00:00 | f |
| Indian/Antananarivo | 03:00 | f |
| Indian/Chagos | 06:00 | f |
| Indian/Christmas | 07:00 | f |
| Indian/Cocos | 06:30 | f |
| Indian/Comoro | 03:00 | f |
| Indian/Kerguelen | 05:00 | f |
| Indian/Mahe | 04:00 | f |
| Indian/Maldives | 05:00 | f |
| Indian/Mauritius | 04:00 | f |
| Indian/Mayotte | 03:00 | f |
| Indian/Reunion | 04:00 | f |
| Iran | 03:30 | f |
| Israel | 02:00 | f |
| Jamaica | -05:00 | f |
| Japan | 09:00 | f |
| Kwajalein | 12:00 | f |
| Libya | 02:00 | f |
| MET | 01:00 | f |
| Mexico/BajaNorte | -08:00 | f |
| Mexico/BajaSur | -07:00 | f |
| Mexico/General | -06:00 | f |
| MST | -07:00 | f |
| MST7MDT | -07:00 | f |
| Navajo | -07:00 | f |
| NZ | 13:00 | t |
| NZ-CHAT | 13:45 | t |
| Pacific/Apia | -10:00 | t |
| Pacific/Auckland | 13:00 | t |
| Pacific/Chatham | 13:45 | t |
| Pacific/Easter | -05:00 | t |
| Pacific/Efate | 11:00 | f |
| Pacific/Enderbury | 13:00 | f |
| Pacific/Fakaofo | -10:00 | f |
| Pacific/Fiji | 13:00 | t |
| Pacific/Funafuti | 12:00 | f |
| Pacific/Galapagos | -06:00 | f |
| Pacific/Gambier | -09:00 | f |
| Pacific/Guadalcanal | 11:00 | f |
| Pacific/Guam | 10:00 | f |
| Pacific/Honolulu | -10:00 | f |
| Pacific/Johnston | -10:00 | f |
| Pacific/Kiritimati | 14:00 | f |
| Pacific/Kosrae | 11:00 | f |
| Pacific/Kwajalein | 12:00 | f |
| Pacific/Majuro | 12:00 | f |
| Pacific/Marquesas | -09:30 | f |
| Pacific/Midway | -11:00 | f |
| Pacific/Nauru | 12:00 | f |
| Pacific/Niue | -11:00 | f |
| Pacific/Norfolk | 11:30 | f |
| Pacific/Noumea | 11:00 | f |
| Pacific/Pago_Pago | -11:00 | f |
| Pacific/Palau | 09:00 | f |
| Pacific/Pitcairn | -08:00 | f |
| Pacific/Ponape | 11:00 | f |
| Pacific/Port_Moresby | 10:00 | f |
| Pacific/Rarotonga | -10:00 | f |
| Pacific/Saipan | 10:00 | f |
| Pacific/Samoa | -11:00 | f |
| Pacific/Tahiti | -10:00 | f |
| Pacific/Tarawa | 12:00 | f |
| Pacific/Tongatapu | 13:00 | f |
| Pacific/Truk | 10:00 | f |
| Pacific/Wake | 12:00 | f |
| Pacific/Wallis | 12:00 | f |
| Pacific/Yap | 10:00 | f |
| Poland | 01:00 | f |
| Portugal | 00:00 | f |
| PRC | 08:00 | f |
| PST8PDT | -08:00 | f |
| ROC | 08:00 | f |
| ROK | 09:00 | f |
| Singapore | 08:00 | f |
| Turkey | 02:00 | f |
| UCT | 00:00 | f |
| Universal | 00:00 | f |
| US/Alaska | -09:00 | f |
| US/Aleutian | -10:00 | f |
| US/Arizona | -07:00 | f |
| US/Central | -06:00 | f |
| US/East-Indiana | -05:00 | f |
| US/Eastern | -05:00 | f |
| US/Hawaii | -10:00 | f |
| US/Indiana-Starke | -06:00 | f |
| US/Michigan | -05:00 | f |
| US/Mountain | -07:00 | f |
| US/Pacific | -08:00 | f |
| US/Pacific-New | -08:00 | f |
| US/Samoa | -11:00 | f |
| UTC | 00:00 | f |
| W-SU | 03:00 | f |
| WET | 00:00 | f |
| Zulu | 00:00 | f |
通过时区简写来指定时区,即tz_abbrev。OSCAR支持的时区简写、时区简写对应的时间偏移及此简写代表的时区是否是夏令时如下表所示:
表216神通数据库支持的时间简写对应的时间偏移
| abbrev | utc_offset | is_dst |
|---|---|---|
| ACSST | 10:30 | t |
| ACST | -04:00 | t |
| ACT | -05:00 | f |
| ADT | -03:00 | t |
| AESST | 11:00 | t |
| AEST | 10:00 | f |
| AFT | 04:30 | f |
| AKDT | -08:00 | t |
| AKST | -09:00 | f |
| ALMST | 07:00 | t |
| ALMT | 06:00 | f |
| AMST | 05:00 | t |
| AMT | 04:00 | f |
| ANAST | 13:00 | t |
| ANAT | 12:00 | f |
| ARST | -02:00 | t |
| ART | -03:00 | f |
| AST | -04:00 | f |
| AWSST | 09:00 | t |
| AWST | 08:00 | f |
| AZOST | 00:00 | t |
| AZOT | -01:00 | f |
| AZST | 05:00 | t |
| AZT | 04:00 | f |
| BDST | 02:00 | t |
| BDT | 06:00 | f |
| BNT | 08:00 | f |
| BORT | 08:00 | f |
| BOT | -04:00 | f |
| BRA | -03:00 | f |
| BRST | -02:00 | t |
| BRT | -03:00 | f |
| BST | 01:00 | t |
| BTT | 06:00 | f |
| CADT | 10:30 | t |
| CAST | 09:30 | f |
| CCT | 08:00 | f |
| CDT | -05:00 | t |
| CEST | 02:00 | t |
| CET | 01:00 | f |
| CETDST | 02:00 | t |
| CHADT | 13:45 | t |
| CHAST | 12:45 | f |
| CKT | 12:00 | f |
| CLST | -03:00 | t |
| CLT | -04:00 | f |
| COT | -05:00 | f |
| CST | -06:00 | f |
| CXT | 07:00 | f |
| DAVT | 07:00 | f |
| DDUT | 10:00 | f |
| EASST | -05:00 | t |
| EAST | -06:00 | f |
| EAT | 03:00 | f |
| EDT | -04:00 | t |
| EEST | 03:00 | t |
| EET | 02:00 | f |
| EETDST | 03:00 | t |
| EGST | 00:00 | t |
| EGT | -01:00 | f |
| EST | -05:00 | f |
| FJST | 13:00 | t |
| FJT | -12:00 | f |
| FKST | -03:00 | t |
| FKT | -04:00 | f |
| FNST | -01:00 | t |
| FNT | -02:00 | f |
| GALT | -06:00 | f |
| GAMT | -09:00 | f |
| GEST | 04:00 | t |
| GET | 03:00 | f |
| GFT | -03:00 | f |
| GILT | 12:00 | f |
| GMT | 00:00 | f |
| GYT | -04:00 | f |
| HKT | 08:00 | f |
| HST | -10:00 | f |
| ICT | 07:00 | f |
| IDT | 03:00 | t |
| IOT | 06:00 | f |
| IRKST | 09:00 | t |
| IRKT | 08:00 | f |
| IRT | 03:30 | f |
| IST | 02:00 | f |
| JAYT | 09:00 | f |
| JST | 09:00 | f |
| KDT | 10:00 | t |
| KGST | 06:00 | t |
| KGT | 05:00 | f |
| KOST | 11:00 | f |
| KRAST | 08:00 | t |
| KRAT | 07:00 | f |
| KST | 09:00 | f |
| LHDT | 11:00 | t |
| LHST | 10:30 | f |
| LIGT | 10:00 | f |
| LINT | 14:00 | f |
| LKT | 06:00 | f |
| MAGST | 12:00 | t |
| MAGT | 11:00 | f |
| MART | -09:30 | f |
| MAWT | 06:00 | f |
| MDT | -06:00 | t |
| MEST | 02:00 | t |
| MET | 01:00 | f |
| METDST | 02:00 | t |
| MEZ | 01:00 | f |
| MHT | 12:00 | f |
| MMT | 06:30 | f |
| MPT | 10:00 | f |
| MSD | 04:00 | t |
| MSK | 03:00 | f |
| MST | -07:00 | f |
| MUST | 05:00 | t |
| MUT | 04:00 | f |
| MVT | 05:00 | f |
| MYT | 08:00 | f |
| NDT | -02:30 | t |
| NFT | -03:30 | f |
| NOVST | 07:00 | t |
| NOVT | 06:00 | f |
| NPT | 05:45 | f |
| NST | -03:30 | f |
| NUT | -11:00 | f |
| NZDT | 13:00 | t |
| NZST | 12:00 | f |
| NZT | 12:00 | f |
| OMSST | 07:00 | t |
| OMST | 06:00 | f |
| PDT | -07:00 | t |
| PET | -05:00 | f |
| PETST | 13:00 | t |
| PETT | 12:00 | f |
| PGT | 10:00 | f |
| PHOT | 13:00 | f |
| PHT | 08:00 | f |
| PKT | 05:00 | f |
| PMDT | -02:00 | t |
| PMST | -03:00 | f |
| PONT | 11:00 | f |
| PST | -08:00 | f |
| PWT | 09:00 | f |
| PYST | -03:00 | t |
| PYT | -04:00 | f |
| RET | 04:00 | f |
| SADT | 10:30 | t |
| SAST | 09:30 | f |
| SCT | 04:00 | f |
| SGT | 08:00 | f |
| TAHT | -10:00 | f |
| TFT | 05:00 | f |
| TJT | 05:00 | f |
| TKT | -10:00 | f |
| TMT | 05:00 | f |
| TOT | 13:00 | f |
| TRUT | 10:00 | f |
| TVT | 12:00 | f |
| UCT | 00:00 | f |
| ULAST | 09:00 | t |
| ULAT | 08:00 | f |
| UT | 00:00 | f |
| UTC | 00:00 | f |
| UYST | -02:00 | t |
| UYT | -03:00 | f |
| UZST | 06:00 | t |
| UZT | 05:00 | f |
| VET | -04:30 | f |
| VLAST | 11:00 | t |
| VLAT | 10:00 | f |
| VUT | 11:00 | f |
| WADT | 08:00 | t |
| WAKT | 12:00 | f |
| WAST | 07:00 | f |
| WAT | 01:00 | f |
| WDT | 09:00 | t |
| WET | 00:00 | f |
| WETDST | 01:00 | t |
| WFT | 12:00 | f |
| WGST | -02:00 | t |
| WGT | -03:00 | f |
| YAKST | 10:00 | t |
| YAKT | 09:00 | f |
| YAPT | 10:00 | f |
| YEKST | 06:00 | t |
| YEKT | 05:00 | f |
| Z | 00:00 | f |
| ZULU | 00:00 | f |
在采用时区简写方式输入时区时,某些时区简写在不同的地理区域上所对应的时间偏移可能是不同的。下表根据地理区域把这些特殊的时区简写进行了归类:
表217神通数据库支持的地理区域及各区域中特殊简写对应的时间偏移
| 地理区域 | abbrev | utc_offset | is_dst |
|---|---|---|---|
| Africa | CAT | 02:00 | f |
| SAST | 02:00 | f | |
| America | AMT | -04:00 | f |
| CST | -05:00 | f | |
| ECT | -05:00 | f | |
| HAST | -10:00 | f | |
| SRT | -03:00 | f | |
| WARST | -03:00 | t | |
| Antarctica | CAST | 11:00 | f |
| DAVT | 05:00 | f | |
| MAWT | 05:00 | f | |
| ROTT | -03:00 | f | |
| SYOT | 03:00 | f | |
| VOST | 06:00 | f | |
| Asia | AQTT | 05:00 | f |
| AST | 03:00 | f | |
| BDST | 07:00 | t | |
| CHOT | 08:00 | f | |
| CIT | 08:00 | f | |
| CST | 08:00 | f | |
| EIT | 09:00 | f | |
| GET | 04:00 | f | |
| GST | 04:00 | f | |
| HOVT | 07:00 | f | |
| IRST | 03:30 | f | |
| IST | 05:30 | f | |
| KGT | 06:00 | f | |
| ORAT | 05:00 | f | |
| QYZT | 06:00 | f | |
| SAKT | 10:00 | f | |
| TLT | 09:00 | f | |
| WIT | 07:00 | f | |
| Atlantic | CVT | -01:00 | f |
| GST | -02:00 | f | |
| Australia | CST | 09:30 | f |
| CWST | 08:45 | f | |
| EST | 10:00 | f | |
| WST | 08:00 | f | |
| Brazil | AMT | -04:00 | f |
| Cuba | CST | -05:00 | f |
| Europe | SAMT | 04:00 | f |
| VOLT | 03:00 | f | |
| India | CCT | 06:30 | f |
| Iran | IRST | 03:30 | f |
| Pacific | ChST | 10:00 | f |
| CKT | -10:00 | f | |
| FJST | 13:00 | t | |
| NCT | 11:00 | f | |
| NFT | 11:30 | f | |
| NRT | 12:00 | f | |
| SBT | 11:00 | f | |
| SST | -11:00 | f | |
| WSDT | -10:00 | t | |
| PRC | CST | 08:00 | f |
| ROC | CST | 08:00 | f |
| US | HAST | -10:00 | f |
| SST | -11:00 | f |
若要使用上表里的特殊时区简写,则需要设置环境变量TIMEZONE_ABBREV为相应的地理区域名称。例如想让时区简写SBT代表时区+11:00,则需要设置TIMEZONE_ABBREV ='Pacific'。如果没有设置TIMEZONE_ABBREV的值,则其默认为'Default',这时所支持的时区简写与表2-16中所列一致。
- 输出格式
TIME WITH TIME ZONE类型的输出格式为:
hour:minute:second[.microsecond] +/-tz_hour:tz_minute,小时采用的是24小时制。hour、minute、second、tz_hour、tz_minute域输出都是2位数字,microsecond则根据实际存储的位数输出,最多不超过6位。
时间戳类型¶
神通数据库中提供的时间戳类型如下表:
表218神通数据库支持的时间戳类型
| 类型 | 描述 | 存储 | 最早 | 最晚 | 精确度 |
|---|---|---|---|---|---|
| TIMESTAMP[(p)] | 时间戳类型 | 8 字节 | 4714-11-24 00:00:00 BC | 9999-12-31 23:59:59.999999 AD | 1 微秒 |
神通数据库支持的时间戳类型用 TIMESTAMP表示,时间戳类型的有效输入由一个日期和时间的联接组成,因此分别遵循DATE类型和TIME类型的格式及精度。
时间戳常量由关键词TIMESTAMP标识,后接一个由单引号括起的格式为“日期时间”的字符串,单引号是时间戳串的一部分不能缺少。时间戳常量在日期串和时间串之间必须包含一个空格。如
TIMESTAMP'2003-8-29 11:20:45'
神通数据库提供了SQL兼容的函数 CURRENT_TIMESTAMP 用于时间戳类型数据的输入,它可以直接用在SQL语句中,如:
示例6: 使用 CURRENT_TIMESTAMP
SELECT CURRENT_TIMESTAMP;
-- 结果如下
NOW
----------------------------
2015-04-07 16:10:51.208751
(1 row)
另外,为了方便,神通数据库还支持下表中的特殊值,但这些值需要用单引号括起来,并强制转换成时间戳类型。
表219神通数据库支持的特殊值
| 特殊值 | 描述 | 举例 |
|---|---|---|
| epoch | 1970-01-0100:00:00 (Unix 系统零时) | select 'epoch'::timestamp; |
| now | 当前事务时间 | select 'now'::timestamp; |
| today | 今日午夜 | select 'today'::timestamp; |
| tomorrow | 明日午夜 | select'tomorrow'::timestamp; |
| yesterday | 昨日午夜 | select 'yesterday'::timestamp; |
- 输入格式
TIMESTAMP类型由日期和时间两部分组成,如果没有设置TIMESTAMPFORMAT参数,则分别遵循DATE类型和TIME类型的输入格式。
注解
如果TIMESTAMP串中不含时间信息,则时间默认为00:00:00。如果TIMESTAMP串不含日期信息,则默认为当前系统日期的当年当月1日。
- 输出格式
TIMESTAMP类型的输出格式为'日期串时间串',如果没有设置TIMESTAMPFORMAT参数,则日期串的格式同DATE类型,受DateStyle参数控制,时间串的格式同TIME类型。
示例7: 查看TIMESTAMPFORMAT参数的示例
-- 清理环境
DROP TABLE tab_ts CASCADE;
-- 设置参数
SET DATEORDER = 'DMY';
SET DATESTYLE = 'DMY';
SET TIMESTAMPFORMAT = '';
-- 创建包含 TIMESTAMP 列的表
CREATE TABLE tab_ts(a INT, b TIMESTAMP);
-- 插入TIMESTAMP数据,成功插入
INSERT INTO tab_ts VALUES(1, '31-12-2012 12:12:12.123456');
-- 插入TIMESTAMP数据,插入失败
INSERT INTO tab_ts VALUES(2, '2012-12-31 12:12:12.123456');
ERROR, 日期时间值越界, date/time field value out of range: "2012-12-31 12:12:12.123456"
-- 查看未设置TIMESTAMPFORMAT时的TIMESTAMP 类型数据的格式
SELECT * FROM tab_ts ORDER BY a;
A(int) |B(timestamp) |
------------------------------
1 |2012-12-31 12:12:1|
|2.123456 |
总数目:1
-- 设置TIMESTAMP类型格式
SET TIMESTAMPFORMAT = 'YYYY-MM-DD HH24:MI:SS.FF';
-- 插入TIMESTAMP数据,成功插入
INSERT INTO tab_ts VALUES(3, '2012-12-31 12:12:12.123456');
-- 查看 TIMESTAMP 类型数据,输出格式符合TIMESTAMPFORMAT指定的格式
SELECT * FROM tab_ts ORDER BY a;
A(int) |B(timestamp) |
------------------------------
1 |2012-12-31 12:12:1|
|2.123456 |
------------------------------
3 |2012-12-31 12:12:1|
|2.123456 |
总数目:2
-- 设置TIMESTAMP类型格式
SET TIMESTAMPFORMAT = 'YYYY-MM-DD';
-- 查看 TIMESTAMP 类型数据,输出格式变化
SELECT * FROM tab_ts ORDER BY a;
A(int) |B(timestamp) |
------------------------------
1 |2012-12-31 12:12:1|
|2.123456 |
------------------------------
3 |2012-12-31 12:12:1|
|2.123456 |
总数目:2
-- 清理环境
DROP TABLE tab_ts;
-- 重置参数
RESET DATEFORMAT;
RESET DATEORDER;
RESET DATESTYLE;
注解
神通数据库会优先使用TIMESTAMPFORMAT参数(忽略DateStyle与DateOrder)用于控制TIMESTAMP类型的输入、输出格式。
带时区时间戳类型¶
神通数据库中提供的带时区时间戳类型如下表:
表220神通数据库支持的带时区时间戳类型
| 类型 | 描述 | 存储 | 最早(圆整到格林威治标准时间) | 最晚(圆整到格林威治标准时间) | 精确度 |
|---|---|---|---|---|---|
| TIMESTAMP[(p)] WITH TIME ZONE | 带时区时间戳类型 | 8 字节 | 4714-11-24 00:00:00 +00:00 BC | 9999-12-31 23:59:59.999999 +00:00 AD | 1 微秒 |
时区部分的表示范围和精确度同TIME[(p)] WITH TIME ZONE类型的时区部分。
- 输入格式
TIMESTAMP WITH TIME ZONE类型的输入格式为'日期串时间串时区串',如果没有设置TIMESTAMPTZFORMAT参数,其中日期串遵循DATE类型的输入格式,时间串遵循TIME类型的输入格式,时区串的输入同TIME WITH TIME ZONE类型的时区部分。各部分之间须用空格分隔,并且各部分的位置可以互换,所表示的日期和时间是相同的。
注解
如果TIMESTAMP WITH TIME ZONE串中不含时间信息,则时间默认为00:00:00。 如果不含日期信息,则默认为当前系统日期的当年当月1日。 如果不含时区信息,则时区默认为服务器系统时区。
- 输出格式
TIMESTAMP WITH TIME ZONE类型的输出格式为'日期串时间串时区串',如果没有设置TIMESTAMPTZFORMAT参数,其中日期串的格式同DATE类型;时间串的格式同TIME类型;时区串与输入的时区串不一定相同,输出的时区串为服务器时区,同时输出的日期时间串也是圆整到服务器时区之后的日期和时间。
示例8: 查看TIMESTAMPTZFORMAT参数的示例
set TIMESTAMPTZFORMAT='YYYY-MM-DD HH24:MI:SS.FF TZ';
select to_timestamp_tz('2012-12-12 12:12:12.123456 +9:00','YYYY-MM-DD HH24:MI:SS.FF TZ');
TO_TIMESTAMP_TZ(timestamptz) |
----------------------------------
2012-12-12 11:12:12.123456 +08:00 |
总数目:1
select to_timestamp_tz('2012-12-12 12:12:12.123456 +9:00');
TO_TIMESTAMP_TZ(timestamptz) |
----------------------------------
2012-12-12 11:12:12.123456 +08:00 |
总数目:1
select to_timestamp_tz('2012-12-12 +9:00 12:12:12.123456','YYYY-MM-DD TZ HH24:MI:SS.FF');
TO_TIMESTAMP_TZ(timestamptz) |
----------------------------------
2012-12-12 11:12:12.123456 +08:00 |
总数目:1
注解
神通数据库会优先使用TIMESTAMPTZFORMAT参数(忽略DateStyle与DateOrder)用于控制TIMESTAMP WITH TIME ZONE类型的输入、输出格式。