¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

9.8. ����/����ؿ��ȱ黻��

ɽ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_datedate���������ա���9.8.4�򻲾ȡ�   
current_timetime with time zone�����λ����9.8.4�򻲾ȡ�   
current_timestamptimestamp 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
localtimetime�����λ����9.8.4�򻲾ȡ�   
localtimestamptimestamp���դȻ����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

9.8.1. EXTRACT, date_part

EXTRACT (field FROM source)

extract�ؿ��ϡ�����/������ͤ���ǯ����ʤɤ���ʬ�ե�����ɤ���Ф��ޤ��� source��timestamp���ޤ���interval����ɾ������ɾ�����Ǥ��� (date���ޤ���time���μ���timestamp���˥��㥹�Ȥ���ޤ��Τǡ�Ʊ�ͤ˻��Ѳ�ǽ�Ǥ���) field��source���ͤ���ɤΥե�����ɤ���Ф��뤫�����򤹤뼱�̻Ҥ⤷����ʸ����Ǥ��� extract�ؿ���double precision�����ͤ��֤��ޤ��� �ʲ���ͭ���ʥե������̾�򼨤��ޤ���

century

ǯ�ե�����ɤ�100�dz�ä����

SELECT EXTRACT(CENTURY FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 20

century�ե�����ɤϡ�ǯ�ե�����ɤ�ñ��100�ǽ���������̤��֤���Τǡ�1900ǯ��ΤۤȤ�ɤ�ǯ��20�����Ȥ��뽾�������Ȥϰۤʤ�ޤ���

day

(�����)���եե������ (1 - 31)

SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 16
decade

ǯ�ե�����ɤ�10�dz�ä����

SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 200
dow

������0��6����������0��timestamp���ͤΤߤǻ��Ѳġ�

SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 5
doy

ǯ��Ǥ��̻�������1��365/366�ˡ�timestamp���ͤΤ߻��Ѳġ�

SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 47
epoch

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
hour

���Υե������(0 - 23)

SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 20
microseconds

ü����ʬ��ޤߡ�1,000,000��褸��줿�åե�����ɡ� ���٤Ƥ��ä�ޤळ�Ȥ�����

SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5');
Result: 28500000
millennium

ǯ�ե�����ɤ�1000�dz�ä����

SELECT EXTRACT(MILLENNIUM FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 2

millennium�ե�����ɤ�ǯ�ե�����ɤ�ñ��1000�dz任������̤ǡ�1900ǯ���ǯ����2�ߥ�˥���Ȥ��뽾�������Ȥϰۤʤ�ޤ���

milliseconds

ü����ʬ��ޤߡ�1000��褸��줿�åե�����ɡ� ���٤Ƥ��ä�ޤळ�Ȥ�����

SELECT EXTRACT(MILLISECONDS FROM TIME '17:12:28.5');
Result: 28500
minute

ʬ�ե������ (0 - 59)

SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 38
month

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
quarter

���������ޤޤ��ǯ�λ�Ⱦ��(1 - 4)(timestamp���ͤ��Ф��ƤΤ�)

SELECT EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 1
second

ü����ޤ���åե������(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
timezone

��ñ�̤�UTC����λ����ӥ��ե��åȡ� �����ͤ�UTC�����λ����Ӥ��б���������ͤ�UTC������λ����Ӥ��б���

timezone_hour

�����ӥ��ե��åȤλ�����ʬ

timezone_minute

�����ӥ��ե��åȤ�ʬ����ʬ

week

��������ǯ���̻��Ǥν���׻����ޤ��� (ISO 8601��)����Ǥϡ�����ǯ��1��4���ν�����1���Ȥ��ޤ��� (ISO-8601�Ǥϡ����Ϸ���������Ϥޤ�Ȥ��Ƥ��ޤ���) �Ĥޤꡢǯ�κǽ�������������뽵������ǯ����1���Ȥʤ�ޤ��� (timestamp���ͤΤ�)

SELECT EXTRACT(WEEK FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 7
year

ǯ�ե������

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

9.8.2. date_trunc

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

9.8.3. AT TIME ZONE

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 zoneUTC��Ϳ����줿�����ӤΥ���������֤��Ѵ����ޤ���
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�������Ǥ���

9.8.4. ���ߤ�����/����

�ʲ��δؿ��ϡ����ߤ����դ����/�ޤ��ϻ��֤�������뤿��δؿ��Ǥ���

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 �ޤ�