PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 8. �������� | Fast Forward | Next |
PostgreSQL ֧�� SQL �����е����ں�ʱ�����͡� �� Table 8-9 ����ʾ�� ��Щ���������Ͽ��Խ��еIJ����� Section 9.9 ������
Table 8-9. ����/ʱ������
���� | �洢�ռ� | ���� | ���ֵ | ���ֵ | �ֱ��� |
---|---|---|---|---|---|
timestamp [ (p) ] [without time zone] | 8 �ֽ� | �������ں�ʱ�� | 4713 BC | 5874897 AD | 1 ���� / 14 λ |
timestamp [ (p) ] with time zone | 8 �ֽ� | ���ں�ʱ�䣬��ʱ�� | 4713 BC | 5874897 AD | 1 ���� / 14 λ |
interval [ (p) ] | 12 �ֽ� | ʱ���� | -178000000 �� | 178000000 �� | 1 ���� |
date | 4 �ֽ� | ֻ�������� | 4713 BC | 32767 AD | 1 �� |
time [ (p) ] [ without time zone ] | 8 �ֽ� | ֻ����һ����ʱ�� | 00:00:00.00 | 23:59:59.99 | 1 ���� |
time [ (p) ] with time zone | ֻ����һ����ʱ�䣬��ʱ�� | 12 �ֽ� | 00:00:00.00+12 | 23:59:59.99-12 | 1 ���� |
ע��: �� 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��ֻ�ȫ�����ܻ���δ���İ汾����ʧ��
���ں�ʱ������뼸���������κκ���ĸ�ʽ������ 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 �����������ȡ� ����ľ����������Ѿ�˵��������ڳ���������û���������ȣ�ȱʡ���ı�ֵ�ľ��ȡ�
Table 8-10 ��ʾ�� date ���Ϳ��ܵ����뷽ʽ��
Table 8-10. ��������
���� | ���� |
---|---|
January 8, 1999 | ���κ�datestyle����ģʽ�¶������� |
1999-01-08 | ISO-8601 ��ʽ���κη�ʽ�¶���199��1��8�ţ��������ʽ�� |
1/8/1999 | ���壬��MDY����һ�°˺ţ��� DMY ģʽ�¶�������һ�� |
1/18/1999 | ��MDYģʽ�¶���һ��ʮ���գ�����ģʽ�±��ܾ� |
01/02/03 | MDY ģʽ�µ�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 ģʽ���Ǵ����֮�� |
19990108 | ISO-8601; �κ�ģʽ�¶���1999��1��8�� |
990108 | ISO-8601; �κ�ģʽ�¶���1999��1��8�� |
1999.008 | �������ĵڼ��� |
J2451187 | ������ |
January 8, 99 BC | ��Ԫǰ99�� |
����ʱ�������� 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.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 | ������������ʱ�� |
Table 8-12. ʱ������
���� | ���� |
---|---|
PST | ̫ƽ���ʱ�䣨Pacific Standard Time�� |
-8:00 | ISO-8601 �� PST ��ƫ�� |
-800 | ISO-8601 �� PST ��ƫ�� |
-8 | ISO-8601 �� PST ��ƫ�� |
zulu | ������ UTC ����д����ע�������������� |
z | zulu ����д |
�ο�Appendix B ��ȡ����ʶ���ʱ�����롣
ʱ������͵���Ч������һ�����ں�ʱ���������ɣ��������һ����ѡ��ʱ����һ����ѡ�� 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 �ķ�ʽΪת��������
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 ֮�䣬 ����ȱʡ�������ı��ľ��ȡ�
PostgreSQL Ϊ�������֧�ּ�����������ֵ�� ���� Table 8-13 ������ʾ�������� ֵinfinity �� -infinity ���ر���ϵͳ�ڲ���ʾ�ģ����ҽ�����ͬ���ķ�ʽ��ʾ�� ���������Ķ�ֻ�Ƿ�����д���ڶ�ȡ��ʱ��ת������ͨ������/ʱ��ֵ�� ���ر��ǣ�now ����ص��ִ��ڶ�ȡ��ʱ��ͱ�ת���ɶ�Ӧ����ֵ���� ������Щֵ�� SQL �����ﵱ����ͨ�����Դ�ʱ������Ҫд�ڵ��������档
Table 8-13. ��������/ʱ������
�����ִ� | ��Ч���� | ���� |
---|---|---|
epoch | date, timestamp | 1970-01-01 00:00:00+00 (Unix ϵͳ��ʱ) |
infinity | timestamp | ���κ�����ʱ������� |
-infinity | timestamp | ���κ�����ʱ������� |
now | date, time, timestamp | ��ǰ����ʱ�� |
today | date, timestamp | ������ҹ |
tomorrow | date, timestamp | ������ҹ |
yesterday | date, timestamp | ������ҹ |
allballs | time | 00:00:00.00 UTC |
���� SQL ���ݺ���Ҳ�������ڻ�ȡ��Ӧ�������͵ĵ�ǰʱ��ֵ�� CURRENT_DATE��CURRENT_TIME�� CURRENT_TIMESTAMP��LOCALTIME�� LOCALTIMESTAMP������ĸ�����һ����ѡ�ľ��������� ���� Section 9.9.4 ���� ��������ע����Щ SQL ���������������������봮ʶ��ġ�
ʹ�� SET DateStyle��ʱ��/�������͵������ʽ����������ַ��֮һ�� ISO 8601��SQL ��Ingres������ͳ�� POSTGRES���� German ��ȱʡ�� ISO ��ʽ�� ��SQL ��Ҫ��ʹ�� ISO 8601 ��ʽ��"SQL" �����ʽ����������ʷżȻ����Table 8-14 ��ʾ��ÿ������������ӡ�date �� time ���͵� �����Ȼֻ�Ǹ�����������������ں�ʱ�䲿�֡�
Table 8-14. ����/ʱ��������
������� | ���� | ���� |
---|---|---|
ISO | ISO-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, DMY | day/month/year | Wed 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�� �������ؿ���ʱ��/���ڵ������
ʱ����ʱ��ϰ�߲������ܵ�����״��Ӱ�죬���ܵ����ξ�����Ӱ�졣 ����19���ͣ�ȫ���ʱ�������������Щ�����ǻ�����������������ģ� ��������Ϊ��ʱ�ƹ��� PostgreSQL Ŀǰ֧�� 1902 �굽 2038 ��֮�����ʱ����Ϣ����Ӧ�ڴ�ͳ Unix ϵͳʱ���������ȣ��� ���ʱ�䳬�������Χ����ô����ʱ����ѡȡ��ʱ����"��ʱ��"���������������ĸ�������档
PostgreSQL �ڵ���Ӧ���о������� SQL �Ķ�������ݡ��� SQL �������ں�ʱ�����ͺ�������һЩ��ֵĻ����������Զ����������ǣ�
date �����ڣ�������ʱ��û����ϵ���� time ��ʱ�䣩����ȴ�л�����С� Ȼ������ʵ�����ʱ��ֻ������ʱ������ڶ�����ʱ�������壬 ��Ϊʱ��ƫ������ʱ�������Ϊʵ��������ʱ���������ƶȶ���һ���������仯��
ȱʡ��ʱ����һ�����ֳ�����ʾ��UTC��ƫ�ƣ�ʱ��� ��ˣ����� DST ����������/ʱ������ʱ�� ���Ǹ��������ܰ���ʱ�����������ؼ����ȥ��
Ϊ�˿˷���Щ���ѣ����ǽ�����ʹ��ʱ����ʱ��ʹ����Щͬʱ�������ں�ʱ�������/ʱ�����͡� ���ǽ�����Ҫʹ������ time with time zone ������ PostgreSQL ���ں���Ӧ���Լ�Ϊ��������RDBMSʵ�ּ��ݵĿ���֧��������ͣ��� PostgreSQL �����������κ����͵ı���ʱ����ֻ�������ڻ�ʱ�䡣
��ϵͳ�ڲ����������ں�ʱ�䶼����ȫ��ͳһʱ��UTC��ʽ�洢�� ʱ���ڷ����ͻ�ǰ��ǰ�����ݿ������ת���ɱ���ʱ�䣬ʹ�õ������ò��� timezone ������ʱ����
���ǿ����� postgresql.conf �ļ����������ò��� timezone�� �������κ������� Section 16.4 �����ı������� ���кü������ⷽ��������������
���û���� postgresql.conf ������ timezone��Ҳû���������п����������� ��������ͼʹ�÷����������ϵ�TZ����������Ϊ��������ȱʡʱ���� ���û�ж��� TZ�������� PostgreSQL ����ʶ��ʱ������ ��ô����������ͼͨ����� C �⺯�� localtime() ����Ϊ���жϲ���ϵͳ��ȱʡʱ���� ȱʡʱ���ǰ�����ӽ� PostgreSQL ����֪ʱ����ԭ����ѡ��ġ�
SQL ���� SET TIME ZONE Ϊ�Ự����ʱ�������� SET TIMEZONE TO ��һ����ѡ��ƴд��ʽ�� ���Ӽ��ݱ���
����ڿͻ���������PGTZ���������� ��ôlibpq������ʱ��ʹ�����������������˷���һ�� SET TIME ZONE ���
��ο� Appendix B ��ȡһ������ʱ�����б�
PostgreSQL ʹ����������������������/ʱ����㡣 �������һ��ij�����365.2425��ʱ������������� �ܾ�ȷ��Ԥ��/�����4713 BC����Ԫǰ4713�꣩���ܾõ�δ��������һ������ڡ�
19������ǰ�����ڴ�ͳ��������ֻ�Ƕ�һЩȤζ���������壬 ���������������û�г�ֵ����ɰ����DZ���������/ʱ�����������ȥ��