8.5. ����/ʱ������

PostgreSQL ֧�� SQL �����е����ں�ʱ�����͡� �� Table 8-9 ����ʾ�� ��Щ���������Ͽ��Խ��еIJ����� Section 9.9 ������

Table 8-9. ����/ʱ������

�����洢�ռ��������ֵ���ֵ�ֱ���
timestamp [ (p) ] [without time zone]8 �ֽ��������ں�ʱ��4713 BC5874897 AD1 ���� / 14 λ
timestamp [ (p) ] with time zone8 �ֽ����ں�ʱ�䣬��ʱ��4713 BC5874897 AD1 ���� / 14 λ
interval [ (p) ]12 �ֽ�ʱ����-178000000 ��178000000 ��1 ����
date4 �ֽ�ֻ��������4713 BC32767 AD1 ��
time [ (p) ] [ without time zone ]8 �ֽ�ֻ����һ����ʱ��00:00:00.0023:59:59.991 ����
time [ (p) ] with time zoneֻ����һ����ʱ�䣬��ʱ��12 �ֽ�00:00:00.00+1223:59:59.99-121 ����

ע��: �� PostgreSQL 7.3 ��ǰ��ֻд timestamp ��Ч�� timestamp with time zone�� ������Ϊ�˺� SQL ���ݡ�

time ��timestamp ��interval ����һ����ѡ�ľ���ֵ p���������ֵ�������������С����֮������λ���� ȱʡ��ʱ���ھ�������û����ȷ�İ󶨵ģ� p ���õķ�Χ�� timestamp�� interval �Ǵ� 0 ����Լ 6��

ע��: ��� timestamp ��ֵ����˫���ȸ�������Ŀǰ��ȱʡ���ķ�ʽ�洢�ģ� ��ô���ȵ���Ч���ƻ�С�� 6�� timestamp ֵ���� 2000-01-01 ��ҹ֮ǰ��֮�������������洢�ģ���΢��ľ�����Ϊ��Щ�� 2000-01-01 ǰ���������ʵ�ֵģ� ������ЩԶһЩ�����ӣ����Ȼ��½������ timestamp �԰��ֽ������洢��һ������ʱ��ѡ�����ô΢��ľ��ȾͿ�������ֵ��ȫ����Χ�ڶ����Ի�á� ��������λ������ʱ��������ڷ�Χ��С�� 4713 BC �� 294276 AD��

���� time ���ͣ����ʹ���˰��ֽڵ������洢����ô p ����ķ�Χ�Ǵ� 0 �� 6�����ʹ�õ��Ǹ������洢����ô�����Χ�� 0 �� 10��

����time with time zone�� SQL ��׼����ģ� ��������������Щ����ᵼ����������÷����ڴ��������£� date��time��timestamp without time zone �� timestamp with time zone ����Ͼ�Ӧ�����ṩ�ṩ�κ�Ӧ����Ҫ������/ʱ����������ܡ�

���� abstime �� reltime �ǵͷֱ������ͣ����DZ�����ϵͳ�ڲ��� ���Dz����������µ�Ӧ������ʹ����Щ���ͣ�ͬʱ����֧�ֺ��ʵ�ʱ��Ѿ�Ӧ���ж�Ӧ������ת����Ŀǰ����ָ���ġ� ��Ϊ��Щ�����͵IJ��ֻ�ȫ�����ܻ���δ���İ汾����ʧ��

8.5.1. ����/ʱ������

���ں�ʱ������뼸���������κκ���ĸ�ʽ������ ISO 8601��SQL-���ݵģ� ��ͳ POSTGRES �ĺ���������ʽ�� ����һЩ��ʽ��������������·ݺ�����������ܻ�����ģ���� ���ϵͳ֧�������Լ�Ԥ�ڵ���Щ�ֶε�˳�� �� DateStyle ��������Ϊ MDY�� ���ǡ��£��գ��ꡱ�Ľ���������Ϊ DMY ���� ���գ��£��ꡱ���� YMD �� ���꣭�£��ա���

PostgreSQL �ڴ�������/ʱ�������ϱ� SQL ��׼Ҫ��ĸ��� ���� Appendix B ��ȡ��������/ʱ�������׼ȷ�ķ�������Ϳ�ʶ���ı��ֶΣ������·ݣ����ڼ�����ʱ����

���ס�κ����ڻ���ʱ����ı�������Ҫ�ɵ����Ű�Χ�� ����һ���ı��ַ���һ���� �ο� Section 4.1.2.5 ��ȡ������Ϣ��SQL Ҫ��������﷨

type [ (p) ] 'value'

�������ѡ�ľ��������е� p ��һ�������� ��Ӧ��������С�����ֵ�λ���� ���ǿ��Զ� time�� timestamp���� interval �����������ȡ� ����ľ����������Ѿ�˵��������ڳ���������û���������ȣ�ȱʡ���ı�ֵ�ľ��ȡ�

8.5.1.1. ����

Table 8-10 ��ʾ�� date ���Ϳ��ܵ����뷽ʽ��

Table 8-10. ��������

��������
January 8, 1999���κ�datestyle����ģʽ�¶�������
1999-01-08ISO-8601 ��ʽ���κη�ʽ�¶���199��1��8�ţ��������ʽ��
1/8/1999���壬��MDY����һ�°˺ţ��� DMY ģʽ�¶�������һ��
1/18/1999��MDYģʽ�¶���һ��ʮ���գ�����ģʽ�±��ܾ�
01/02/03MDY ģʽ�µ�2003��һ��2�գ� DMY ģʽ�µ� 2003 �� 2�� 1�գ� YMD ģʽ�µ�2001��������գ�
1999-Jan-08�κ�ģʽ�¶���һ��8��
Jan-08-1999�κ�ģʽ�¶���һ��8��
08-Jan-1999�κ�ģʽ�¶���һ��8��
99-Jan-08�� YMD ģʽ����һ��8�գ��������
08-Jan-99һ�°��գ������� YMD ģʽ���Ǵ����֮��
Jan-08-99һ�°��գ������� YMD ģʽ���Ǵ����֮��
19990108ISO-8601; �κ�ģʽ�¶���1999��1��8��
990108ISO-8601; �κ�ģʽ�¶���1999��1��8��
1999.008�������ĵڼ���
J2451187������
January 8, 99 BC��Ԫǰ99��

8.5.1.2. ʱ��

����ʱ�������� time [ (p) ] without time zone �� time [ (p) ] with time zone�� ֻд time ��Ч�� time without time zone��

��Щ���͵���Ч�����ɵ���ʱ�������ſ�ѡ��ʱ����ɡ� ������ Table 8-11���� ����� time without time zone ���͵����� ��������ʱ������ô���ᱻ�����غ��ԡ�

Table 8-11. ʱ������

��������
04:05:06.789ISO 8601
04:05:06ISO 8601
04:05ISO 8601
040506ISO 8601
04:05 AM�� 04:05 һ����AM ��Ӱ����ֵ
04:05 PM�� 16:05һ��������Сʱ������ <= 12
04:05:06.789-8ISO 8601
04:05:06-08:00ISO 8601
04:05-08:00ISO 8601
040506-08ISO 8601
04:05:06 PST������������ʱ��

Table 8-12. ʱ������

��������
PST̫ƽ���׼ʱ�䣨Pacific Standard Time��
-8:00ISO-8601 �� PST ��ƫ��
-800ISO-8601 �� PST ��ƫ��
-8ISO-8601 �� PST ��ƫ��
zulu������ UTC ����д����ע��������������
zzulu ����д

�ο�Appendix B ��ȡ����ʶ���ʱ�����롣

8.5.1.3. ʱ���

ʱ������͵���Ч������һ�����ں�ʱ���������ɣ��������һ����ѡ��ʱ����һ����ѡ�� AD ���� BC�������⣬AD/BC ���Գ�����ʱ��ǰ�棬�����˳�򲢷���ѵġ��� ���

1999-01-08 04:05:06

��

1999-01-08 04:05:06 -8:00

��һ����Ч����ֵ�� ���Ǽ��� ISO 8601 �ġ����⣬��������ʹ�ù㷺�ĸ�ʽ

January 8 04:05:06 1999 PST

Ҳ��֧�֡�

SQL ��׼ͨ�� "+" ���� "-" �Ƿ���������� timestamp without time zone �� timestamp with time zone �ı��� ��ˣ����ݱ�׼��

TIMESTAMP '2004-10-19 10:23:54'

��һ�� timestamp without time zone�� ��

TIMESTAMP '2004-10-19 10:23:54+02'

��һ�� timestamp with time zone�� PostgreSQL ���׼��ͬ�ĵط���Ҫ�������ȷ���� timestamp with time zone �ı���

TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'

�� ���һ���ı�������ȷ���� timestamp with time zone ��ͷ��PostgreSQL ��������������κ��ı���ָ����ʧȥ�� ��ˣ����ɵ�����/ʱ��ֵ�Ǵ�����ֵ������/ʱ���ֶ����������ģ�����û�о�ʱ�����е�����

���� timestamp [without time zone]���κ���������������ʱ�����������̵��� Ҳ����˵�����ɵ�����/ʱ����ֵ�Ǵ���������ȷ������/ʱ���ֶ��еó��ģ�����û�и���ʱ��������

���� timestamp with time zone���ڲ��洢����ֵ���� UTC ��ȫ��ͳһʱ�䣬��ǰҲ�и�������ʱ��GMT�������һ������ֵ����ȷ��ʱ�������� ��ô�����ø�ʱ�����ʵ�ƫ����ת���� UTC������������ִ���û��ʱ�������� ��ô���ͼ�������ϵͳ�� timezone ��������Ǹ�ʱ����Ȼ��ʹ����� timezone ʱ��ת���� UTC��

������һ�� timestamp with time zone����ô�����Ǵ� UTC ת���ɵ�ǰ�� timezone ʱ����������ʾΪ��ʱ���ı���ʱ�䡣 Ҫ������ʱ���ĸ�ʱ�䣬Ҫô�޸� timezone��Ҫôʹ�� AT TIME ZONE ���죨���� Section 9.9.3����

�� timestamp without time zone �� timestamp with time zone ֮���ת��ͨ������ timestamp without time zone ��ֵӦ���� timezone ����ʱ�����ʽ���ܻ���д���� ������ʱ�����ÿ����� AT TIME ZONE �ķ�ʽΪת��������

8.5.1.4. ���

interval��ֵ�����������﷨������

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

���quantity ��һ�����֣������з��ţ��� unit �� second, minute, hour, day, week, month, year, decade, century, millennium, ������Щ��λ����д������ direction ������ ago ����Ϊ�ա����� @ ��һ����ѡ�Ķ�������ͬ�ĵ�λ�Լ���Ӧ��ȷ�ķ��Ŷ������������ӵġ�

���ڣ�Сʱ�����ӣ��Լ����ӵ���������������ȷ��λ��ǵ������������ ���磬'1 12:59:10' �� '1 day 12 hours 59 min 10 sec' ����һ����

��ѡ�ľ��� p Ӧ�ý��� 0 �� 6 ֮�䣬 ����ȱʡ�������ı��ľ��ȡ�

8.5.1.5. ����ֵ

PostgreSQL Ϊ�������֧�ּ�����������ֵ�� ���� Table 8-13 ������ʾ�������� ֵinfinity �� -infinity ���ر���ϵͳ�ڲ���ʾ�ģ����ҽ�����ͬ���ķ�ʽ��ʾ�� ���������Ķ�ֻ�Ƿ�����д���ڶ�ȡ��ʱ�򽫱�ת������ͨ������/ʱ��ֵ�� ���ر��ǣ�now ����ص��ִ��ڶ�ȡ��ʱ��ͱ�ת���ɶ�Ӧ����ֵ���� ������Щֵ�� SQL �����ﵱ����ͨ�����Դ�ʱ������Ҫд�ڵ��������档

Table 8-13. ��������/ʱ������

�����ִ���Ч��������
epochdate, timestamp1970-01-01 00:00:00+00 (Unix ϵͳ��ʱ)
infinitytimestamp���κ�����ʱ�������
-infinitytimestamp���κ�����ʱ�������
nowdate, time, timestamp��ǰ����ʱ��
todaydate, timestamp������ҹ
tomorrowdate, timestamp������ҹ
yesterdaydate, timestamp������ҹ
allballstime00:00:00.00 UTC

���� SQL ���ݺ���Ҳ�������ڻ�ȡ��Ӧ�������͵ĵ�ǰʱ��ֵ�� CURRENT_DATE��CURRENT_TIME�� CURRENT_TIMESTAMP��LOCALTIME�� LOCALTIMESTAMP������ĸ�����һ����ѡ�ľ��������� ���� Section 9.9.4 ���� ��������ע����Щ SQL ���������������������봮ʶ��ġ�

8.5.2. ����/ʱ�����

ʹ�� SET DateStyle��ʱ��/�������͵������ʽ����������ַ��֮һ�� ISO 8601��SQL ��Ingres������ͳ�� POSTGRES���� German ��ȱʡ�� ISO ��ʽ�� ��SQL ��׼Ҫ��ʹ�� ISO 8601 ��ʽ��"SQL" �����ʽ����������ʷżȻ����Table 8-14 ��ʾ��ÿ������������ӡ�date �� time ���͵� �����Ȼֻ�Ǹ�����������������ں�ʱ�䲿�֡�

Table 8-14. ����/ʱ��������

���������������
ISOISO-8601/SQL ��׼1997-12-17 07:37:16-08
SQL��ͳ���12/17/1997 07:37:16.00 PST
POSTGRESԭʼ���Wed Dec 17 07:37:16 1997 PST
German�������17.12.1997 07:37:16.00 PST

��������� DMY �ֶΣ���ô�� SQL �� POSTGRES �����������·�֮ǰ���֣������·ݳ���������֮ǰ�� ������ Section 8.5.1 ���֣�����������������Ӱ�������ֵ�Ľ��͡��� Table 8-15 ��ʾ��һ�����ӡ�

Table 8-15. ����˳��ϰ��

���������������
SQL, DMY��/��/��17/12/1997 15:37:16.00 CET
SQL, MDY��/��/��12/17/1997 07:37:16.00 PST
Postgres, DMYday/month/yearWed 17 Dec 07:37:16 1997 PST

interval ������������������ʽ��ֻ���� century �� week �����ĵ�λ��ת��������գ��� ago ��ת���ɺ��ʵķ��š��� ISO ģʽ�������������

[ quantity unit [ ... ] ] [ days ] [ hours:minutes:secondes ]

����/ʱ����������û��� SET datestyle ���� ѡȡ�������� postgresql.conf �����ļ���IJ��� DateStyle ���ã����߷�������ͻ��˵� PGDATESTYLE �������������á�����Ҳ�����ø�ʽ������ to_char������ Section 9.8�� �������ؿ���ʱ��/���ڵ������

8.5.3. ʱ��

ʱ����ʱ��ϰ�߲������ܵ��򼸺���״��Ӱ�죬���ܵ����ξ�����Ӱ�졣 ����19���ͣ�ȫ���ʱ�������΢��׼����Щ�����ǻ�����������������޸ģ� ��������Ϊ��ʱ�ƹ��� PostgreSQL Ŀǰ֧�� 1902 �굽 2038 ��֮�����ʱ����Ϣ����Ӧ�ڴ�ͳ Unix ϵͳʱ���������ȣ��� ���ʱ�䳬�������Χ����ô����ʱ����ѡȡ��ʱ����"��׼ʱ��"���������������ĸ�������档

PostgreSQL �ڵ���Ӧ���о������� SQL �Ķ�������ݡ��� SQL ��׼�����ں�ʱ�����ͺ͹�������һЩ��ֵĻ����������Զ��׼��������ǣ�

Ϊ�˿˷���Щ���ѣ����ǽ�����ʹ��ʱ����ʱ��ʹ����Щͬʱ�������ں�ʱ�������/ʱ�����͡� ���ǽ�����Ҫʹ������ time with time zone ������ PostgreSQL ���ں���Ӧ���Լ�Ϊ��������RDBMSʵ�ּ��ݵĿ���֧��������ͣ��� PostgreSQL �����������κ����͵ı���ʱ����ֻ�������ڻ�ʱ�䡣

��ϵͳ�ڲ����������ں�ʱ�䶼����ȫ��ͳһʱ��UTC��ʽ�洢�� ʱ���ڷ����ͻ�ǰ��ǰ�����ݿ������ת���ɱ���ʱ�䣬ʹ�õ������ò��� timezone ������ʱ����

���ǿ����� postgresql.conf �ļ����������ò��� timezone�� �������κ������� Section 16.4 �����ı�׼������ ���кü������ⷽ��������������

��ο� Appendix B ��ȡһ������ʱ�����б�

8.5.4. �ڲ�

PostgreSQL ʹ����������������������/ʱ����㡣 �������һ��ij�����365.2425��ʱ������������� �ܾ�ȷ��Ԥ��/�����4713 BC����Ԫǰ4713�꣩���ܾõ�δ��������һ������ڡ�

19������ǰ�����ڴ�ͳ��������ֻ�Ƕ�һЩȤζ���������壬 ���������������û�г�ֵ����ɰ����DZ���������/ʱ�����������ȥ��