ɽ9-26�ϡ�����/���﷿���ͤν����ǻ��Ѳ�ǽ�ʴؿ����Ƥ��ޤ��� �ܺ٤ϡ��ʲ���������������ޤ��� ɽ9-25�ϡ�(+��*����)����Ū�ʻ��ѱ黻�Ҥο����������Ƥ��ޤ��� ������ؿ��ˤĤ��Ƥ���9.7�Ȥ��Ƥ��������� ��8.5�Ȥ��ơ�����/����ǡ������ˤĤ��Ƥ��طʤȤʤäƤ����������̤��Ƥ��ʤ���Фʤ�ޤ���
��Ҥ�time�⤷����timestamp�������Ϥ�������ؿ�����ӱ黻�ҤϤ��٤ơ��ºݤˤ�2�Ĥμ��ब����ޤ��� �ҤȤĤ�time with time zone���ޤ���timestamp with time zone�������Τǡ��⤦1�Ĥ�time without time zone���⤷����timestamp without time zone�������ΤǤ��� ��ά�Τ��ᡢ�����μ���ΰ㤤�ϸ��̤˼����Ƥ��ޤ���
ɽ 9-25. ����/����黻��
�黻��̾ | �� | ��� |
---|---|---|
+ | date '2001-09-28' + integer '7' | date '2001-10-05' |
+ | date '2001-09-28' + interval '1 hour' | timestamp '2001-09-28 01:00' |
+ | date '2001-09-28' + time '03:00' | timestamp '2001-09-28 03:00' |
+ | time '03:00' + date '2001-09-28' | timestamp '2001-09-28 03:00' |
+ | interval '1 day' + interval '1 hour' | interval '1 day 01:00' |
+ | timestamp '2001-09-28 01:00' + interval '23 hours' | timestamp '2001-09-29 00:00' |
+ | time '01:00' + interval '3 hours' | time '04:00' |
+ | interval '3 hours' + time '01:00' | time '04:00' |
- | - interval '23 hours' | interval '-23:00' |
- | date '2001-10-01' - date '2001-09-28' | integer '3' |
- | date '2001-10-01' - integer '7' | date '2001-09-24' |
- | date '2001-09-28' - interval '1 hour' | timestamp '2001-09-27 23:00' |
- | time '05:00' - time '03:00' | interval '02:00' |
- | time '05:00' - interval '2 hours' | time '03:00' |
- | timestamp '2001-09-28 23:00' - interval '23 hours' | timestamp '2001-09-28 00:00' |
- | interval '1 day' - interval '1 hour' | interval '23:00' |
- | interval '2 hours' - time '05:00' | time '03:00' |
- | timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00' | interval '1 day 15:00' |
* | double precision '3.5' * interval '1 hour' | interval '03:30' |
* | interval '1 hour' * double precision '3.5' | interval '03:30' |
/ | interval '1 hour' / double precision '1.5' | interval '00:40' |
ɽ 9-26. ����/����ؿ�
�ؿ�̾ | �֤��ͷ� | ���� | �� | ��� |
---|---|---|---|---|
age(timestamp) | interval | ���������դ���θ��� | age(timestamp '1957-06-13') | 43 years 8 mons 3 days |
age(timestamp, timestamp) | interval | �������鸺�� | age('2001-04-10', timestamp '1957-06-13') | 43 years 9 mons 27 days |
current_date | date | ���������ա���9.8.4�ȡ� | ||
current_time | time with time zone | �����λ����9.8.4�ȡ� | ||
current_timestamp | timestamp with time zone | ���դȻ����9.8.4�ȡ� | ||
date_part(text, timestamp) | double precision | ��ʬ�ե�����ɤμ����� (extract��Ʊ��)�� ��9.8.1�ȡ� | date_part('hour', timestamp '2001-02-16 20:38:40') | 20 |
date_part(text, interval) | double precision | ��ʬ�ե�����ɤμ����� (extract��Ʊ��)�� ��9.8.1�ȡ� | date_part('month', interval '2 years 3 months') | 3 |
date_trunc(text, timestamp) | timestamp | ���ꤵ�줿���٤��ڼΤơ� ��9.8.2�⻲�ȡ� | date_trunc('hour', timestamp '2001-02-16 20:38:40') | 2001-02-16 20:00:00 |
extract(field from timestamp) | double precision | ��ʬ�ե�����ɤμ�������9.8.1�ȡ� | extract(hour from timestamp '2001-02-16 20:38:40') | 20 |
extract(field from interval) | double precision | ��ʬ�ե�����ɤμ�������9.8.1�ȡ� | extract(month from interval '2 years 3 months') | 3 |
isfinite(timestamp) | boolean | �����ॹ����פ�ͭ��(̵�¤ǤϤʤ�)���ɤ����Υƥ��� | isfinite(timestamp '2001-02-16 21:28:30') | true |
isfinite(interval) | boolean | ���ֳִ֤�ͭ�¤��ɤ����Υƥ��� | isfinite(interval '4 hours') | true |
localtime | time | �����λ����9.8.4�ȡ� | ||
localtimestamp | timestamp | ���դȻ����9.8.4�ȡ� | ||
now() | timestamp with time zone | ���ߤ����դȻ���(current_timestamp��Ʊ��)�� ��9.8.4�ȡ� | ||
timeofday() | text | ���ߤ����դȻ����9.8.4�ȡ� |
�����δؿ��˲ä���OVERLAPS SQL�黻�Ҥ����ݡ��Ȥ���Ƥ��ޤ���
( start1, end1 ) OVERLAPS ( start2, end2 ) ( start1, length1 ) OVERLAPS ( start2, length2 )
���μ��ϡ�2�Ĥλ��ֳִ֤��Ťʤ�(���ν�ü���������ޤ�)���˿����֤��ޤ��� �Ťʤ�ʤ����ϵ����֤��ޤ��� ��ü�����ա���������ॹ����ס��⤷���ϡ�����/����/�����ॹ����פ�³�����ֳִ֤ǻ��ꤵ��ޤ���
SELECT (DATE '2001-02-16', DATE '2001-12-21') OVERLAPS (DATE '2001-10-30', DATE '2002-10-30'); Result: true SELECT (DATE '2001-02-16', INTERVAL '100 days') OVERLAPS (DATE '2001-10-30', DATE '2002-10-30'); Result: false
EXTRACT (field FROM source)
extract�ؿ��ϡ�����/������ͤ���ǯ����ʤɤ���ʬ�ե�����ɤ���Ф��ޤ��� source��timestamp���ޤ���interval����ɾ������ɾ�����Ǥ��� (date���ޤ���time���μ���timestamp���˥��㥹�Ȥ���ޤ��Τǡ�Ʊ�ͤ˻��Ѳ�ǽ�Ǥ���) field��source���ͤ���ɤΥե�����ɤ���Ф��뤫�����뼱�̻Ҥ⤷����ʸ����Ǥ��� extract�ؿ���double precision�����ͤ��֤��ޤ��� �ʲ���ͭ���ʥե������̾���ޤ���
ǯ�ե�����ɤ�100�dz�ä����
SELECT EXTRACT(CENTURY FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 20
century�ե�����ɤϡ�ǯ�ե�����ɤ�ñ��100�ǽ���������̤��֤���Τǡ�1900ǯ��ΤۤȤ�ɤ�ǯ��20�����Ȥ��뽾�������Ȥϰۤʤ�ޤ���
(�����)���եե������ (1 - 31)
SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 16
ǯ�ե�����ɤ�10�dz�ä����
SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 200
������0��6����������0��timestamp���ͤΤߤǻ��Ѳġ�
SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 5
ǯ��Ǥ��̻�������1��365/366�ˡ�timestamp���ͤΤ��Ѳġ�
SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 47
date����timestamp�����ͤˤ����ơ�1970-01-01 00:00:00������ÿ�����ο��ξ��⤢��ˡ� interval�����ͤǤϤ��λ��ֳִ֤ˤ������äι��
SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40-08'); Result: 982384720 SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours'); Result: 442800
���Υե������(0 - 23)
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 20
ü����ʬ��ޤߡ�1,000,000��褸��줿�åե�����ɡ� ���٤Ƥ��ä�ޤळ�Ȥ�����
SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5'); Result: 28500000
ǯ�ե�����ɤ�1000�dz�ä����
SELECT EXTRACT(MILLENNIUM FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 2
millennium�ե�����ɤ�ǯ�ե�����ɤ�ñ��1000�dz任������̤ǡ�1900ǯ���ǯ����2�ߥ�˥���Ȥ��뽾�������Ȥϰۤʤ�ޤ���
ü����ʬ��ޤߡ�1000��褸��줿�åե�����ɡ� ���٤Ƥ��ä�ޤळ�Ȥ�����
SELECT EXTRACT(MILLISECONDS FROM TIME '17:12:28.5'); Result: 28500
ʬ�ե������ (0 - 59)
SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 38
timestamp�����ͤ��Ф��Ƥ�ǯ��η��ֹ�(1 - 12)�� interval�����ͤ��Ф��ƤϷ��ֹ�ǡ�12�ξ�;(0 - 11)
SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 2 SELECT EXTRACT(MONTH FROM INTERVAL '2 years 3 months'); Result: 3 SELECT EXTRACT(MONTH FROM INTERVAL '2 years 13 months'); Result: 1
���������ޤޤ��ǯ�λ�Ⱦ��(1 - 4)(timestamp���ͤ��Ф��ƤΤ�)
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 1
ü����ޤ���åե������(0 - 59) [1]��
SELECT EXTRACT(SECOND FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 40 SELECT EXTRACT(SECOND FROM TIME '17:12:28.5'); Result: 28.5
��ñ�̤�UTC����λ����ӥ��ե��åȡ� �����ͤ�UTC�����λ����Ӥ��б���������ͤ�UTC������λ����Ӥ��б���
�����ӥ��ե��åȤλ�����ʬ
�����ӥ��ե��åȤ�ʬ����ʬ
��������ǯ���̻��Ǥν�������ޤ��� (ISO 8601��)����Ǥϡ�����ǯ��1��4���ν�����1���Ȥ��ޤ��� (ISO-8601�Ǥϡ����Ϸ���������Ϥޤ�Ȥ��Ƥ��ޤ���) �Ĥޤꡢǯ�κǽ�������������뽵������ǯ����1���Ȥʤ�ޤ��� (timestamp���ͤΤ�)
SELECT EXTRACT(WEEK FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 7
ǯ�ե������
SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 2001
extract�ؿ��Ϥ�Ȥ�ȷ���������Ū�Ǥ����� ����/������ͤ�ɽ��������Ū�ǤνˤĤ��Ƥ���9.7�Ȥ��Ƥ���������
date_part�ؿ�������Ū��Ingres����߷פ��줿��Τǡ�ɸ��SQL��extract�ؿ��������Ǥ���
date_part('field', source)
������field�ѥ�����̾���ǤϤʤ�ʸ�����ͤǤ���ɬ�פ����뤳�Ȥ����դ��Ƥ��������� date_part��ͭ���ʥե������̾��extract��Ʊ���Ǥ���
SELECT date_part('day', TIMESTAMP '2001-02-16 20:38:40'); Result: 16 SELECT date_part('hour', INTERVAL '4 hours 3 minutes'); Result: 4
date_trunc�ؿ��ϳ�ǰŪ�˿��ͤ��Ф���trunc�ؿ���������Ƥ��ޤ���
date_trunc('field', source)
source�ϡ��ǡ�����timestamp�⤷����interval��ɾ�����Ǥ�(�ǡ�����date��time�Ϥ��줾�켫ưŪ��timestamp�⤷����interval�˥��㥹�Ȥ���ޤ�)�� field�ϡ������ͤ��ͤ�ɤ����٤��ڼΤƤ뤫�����ޤ��� �֤��ͤ��ͤϡ����줿��ΰʲ���������(���ȷ�ξ���1������)���������٤ƤΥե�����ɤ����timestamp�⤷����interval���Ǥ���
field ��ͭ���ͤˤϼ��Τ�Τ�����ޤ���
microseconds |
milliseconds |
second |
minute |
hour |
day |
month |
year |
decade |
century |
millennium |
�㡧
SELECT date_trunc('hour', TIMESTAMP '2001-02-16 20:38:40'); Result: 2001-02-16 20:00:00 SELECT date_trunc('year', TIMESTAMP '2001-02-16 20:38:40'); Result: 2001-01-01 00:00:00
AT TIME ZONE��ʸ����Ѥ��뤳�Ȥˤ�ꡢ�����ॹ����פ�ۤʤ�����Ӥ��Ѵ����뤳�Ȥ��Ǥ��ޤ��� ɽ9-27�ˤ��μ�����ޤ���
ɽ 9-27. AT TIME ZONE �μ���
�� | �֤��� | ���� |
---|---|---|
timestamp without time zone AT TIME ZONE zone | timestamp with time zone | Ϳ����줿�����ӤΥ���������֤�UTC���Ѵ����ޤ��� |
timestamp with time zone AT TIME ZONE zone | timestamp without time zone | UTC��Ϳ����줿�����ӤΥ���������֤��Ѵ����ޤ��� |
time with time zone AT TIME ZONE zone | time with time zone | �����Ӥ˴ط��ʤ�����������֤��Ѵ����ޤ��� |
�嵭�μ��Ǥϡ����ꤹ�������zone�ϡ�('PST'�Τ褦��)�ƥ�����ʸ���ޤ���(INTERVAL '-08:00'�Τ褦��)���ֳִ֤ǻ��ꤹ�뤳�Ȥ��Ǥ��ޤ���
�ʲ�������ޤ�(��������ʻ����Ӥ�PST8PDT�����ꤷ�Ƥ��ޤ�)��
SELECT TIMESTAMP '2001-02-16 20:38:40' AT TIME ZONE 'MST'; Result: 2001-02-16 19:38:40-08 SELECT TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40-05' AT TIME ZONE 'MST'; Result: 2001-02-16 18:38:40
�ǽ����Ǥϡ������Ӥ˴ط��Τʤ������ॹ����פ����Ѥ��졢���줬MST����(UTC-7)�Ȥ��Ʋ�ᤵ�졢UTC�����ॹ����פ��������ޤ��� ���줫�顢UTC�����ॹ����פ���ɽ����PST(UTC-8)���֤��������ޤ��� 2���ܤ���Ǥϡ�EST(UTC-5)�˻��ꤵ�줿�����ॹ����פ����Ѥ��졢���줬MST(UTC-7)�ǤΥ���������֤��Ѵ�����Ƥ��ޤ���
�ؿ�timezone(zone, timestamp)�ϡ�SQL���ι�ʸtimestamp AT TIME ZONE zone�������Ǥ���
�ʲ��δؿ��ϡ����ߤ����դ����/�ޤ��ϻ��֤�������뤿��δؿ��Ǥ���
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TIME ( precision ) CURRENT_TIMESTAMP ( precision ) LOCALTIME LOCALTIMESTAMP LOCALTIME ( precision ) LOCALTIMESTAMP ( precision )
CURRENT_TIME�����CURRENT_TIMESTAMP�ؿ��Ǥϡ������Ӥ�ȼ���ͤ��ޤ��� ������LOCALTIME�����LOCALTIMESTAMP�ؿ��Ǥϡ������Ӥ�ȼ��ʤ��ͤ��ޤ���
CURRENT_TIME��CURRENT_TIMESTAMP��LOCALTIME�������LOCALTIMESTAMP�ؿ��Ǥϡ����٤Υѥ����ץ�����Ϳ���뤳�Ȥ��Ǥ�������˹�碌���åե�����ɤ�ü�����ݤ���̤�⤿�餷�ޤ��� ���٤Υѥ������ʤ���硢��̤ϻ��Ѳ�ǽ�ʺ������٤ǽ��Ϥ���ޤ���
����: PostgreSQL 7.2������ޤǤϡ����٥ѥ����ϼ�������Ƥ���ޤ���Ǥ����� �����Ʒ�̤Ͼ�������ˤ���äȤʤ�ޤ�����
�ʲ��ˤ����Ĥ�����ޤ���
SELECT CURRENT_TIME; Result: 14:39:53.662522-05 SELECT CURRENT_DATE; Result: 2001-12-23 SELECT CURRENT_TIMESTAMP; Result: 2001-12-23 14:39:53.662522-05 SELECT CURRENT_TIMESTAMP(2); Result: 2001-12-23 14:39:53.66-05 SELECT LOCALTIMESTAMP; Result: 2001-12-23 14:39:53.662522
now()�ؿ���CURRENT_TIMESTAMP��������PostgreSQL�˱���������Ǥ���
Ʊ����timeofday()�ؿ������äơ����Ū��ͳ�ˤ��timestamp���ͤǤϤʤ�text����ʸ������֤��ޤ���
SELECT timeofday(); Result: Sat Feb 17 19:07:32.000126 2001 EST
CURRENT_TIMESTAMP�ȡ�����˴�Ϣ����ؿ��ϡ����٤Ƹ��ߤΥȥ��������Ϥ��줿���֤��֤����Ȥ����뤳�ȤϽ��פǤ��� �����ͤϡ��ȥ������¹Ԥ���Ƥ���֤��Ѳ����ޤ��� ����ϡ����ε�ǽ��Ƥ������̤Ǥ��� ñ��ȥ�������ǡ�"current"���֤���������ä�ɽ����Ԥʤ����Ȥ��Ǥ���褦�ˤ��뤳�Ȥ���Ū�Ȥ������Τ��ᡢƱ��ȥ�������Dz����ѹ���ԤʤäƤ�Ʊ��Υ����ॹ����פ��������ޤ��� timeofday()�ϡ��ɻ�������֤����ȥ������¹Ԥ���Ƥ���֤ˤ����ä��ޤ���
����: ¾��¿���Υǡ����١��������ƥ�Ǥϡ��������ͤ������ˤ����ä����ޤ���
���٤Ƥ�����/����ǡ�������Ʊ����now�Ȥ������ߤ����դȻ�������ꤹ���ü�ʥ�ƥ���ͤ�����դ��ޤ��� �������äơ�������3�Ĥμ¹Է�̤Ϥ��٤�Ʊ����ΤȤʤ�ޤ���
SELECT CURRENT_TIMESTAMP; SELECT now(); SELECT TIMESTAMP 'now';
����: �ơ��֥������������DEFAULT�����ꤹ��Τ�3���ܤη�����Ȥ����Ȥϻפ�ʤ��Ǥ��礦�� ��������Ϥ��줿���������ƥबnow��timestamp���Ѵ�����Τǡ��ǥե�����ͤȤ��ƥơ��֥뤬�������줿���郎�Ȥ��ޤ��� �ǽ��2�Ĥη����ϴؿ��ƤӽФ��Τ���ǥե�����ͤ����Ѥ����ޤ�ɾ������ޤ��� �Ǥ����顢�����δؿ�������������֤�ǥե���ȤȤ��롢˾�ޤ������ޤ���
[1] | ���ڥ졼�ƥ������ƥ�Ǥ��뤦�ä���������Ƥ������ 60 �ޤ� |