| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 9. ÇÔ¼ö¿Í ¿¬»êÀÚ | Fast Forward | Next |
Table 9-26(Àº)´Â, ÀÏÀÚ/½Ã°¢ÇüÀÇ °ªÀÇ Ã³¸®·Î »ç¿ë °¡´ÉÇÑ ÇÔ¼ö¸¦ ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº, ÀÌÇÏÀÇ ºÎÀý·Î ¼³¸íÇÕ´Ï´Ù. Table 9-25(Àº)´Â, (+,*µîÀÇ) ±âº»ÀûÀÎ »ê¼ú ¿¬»êÀÚÀÇ ÇൿÀ» ¼³¸íÇϰí ÀÖ½À´Ï´Ù. ¼½Ä ¼³Á¤ ÇÔ¼ö¿¡ ´ëÇØ¼´ÂSection 9.8À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä. Section 8.5(À»)¸¦ ÂüÁ¶ÇØ, ÀÏÀÚ/½Ã°¢ µ¥ÀÌÅÍÇü¿¡ ´ëÇÑ ¹è°æÀÌ µÇ°í ÀÖ´Â Á¤º¸¿¡ Á¤ÅëÇϰí ÀÖ¾î¾ß ÇÕ´Ï´Ù.
ÈļúÀÇtimeȤÀºtimestampÇüÀÇ ÀÔ·ÂÀ» ¹Þ´Â ÇÔ¼ö ¹× ¿¬»êÀÚ´Â ¸ðµÎ, ½ÇÁ¦·Î´Â 2°³ÀÇ Á¾·ù°¡ ÀÖ½À´Ï´Ù. 1°³´Âtime with time zoneÇü ¶Ç´Âtimestamp with time zoneÇüÀ» ÃëÇØ¼, ÀÌ¹Ì 1°³´Âtime without time zoneÇü ȤÀºtimestamp without time zoneÇüÀ» ÃëÇÏ´Â °ÍÀÔ´Ï´Ù. »ý·«À̱⠶§¹®¿¡, ÀÌ·¯ÇÑ Á¾·ùÀÇ Â÷ÀÌ´Â °³º°ÀûÀ¸·Î °¡¸®Å°°í ÀÖÁö ¾Ê½À´Ï´Ù. ¶ÇÇÑ,+¹×*¿¬»êÀÚ´Â ±³È¯ ¿¬»êÀÚ¸¦ °¡Áý´Ï´Ù(¿¹¸¦ µé¸é date + integer¿Í integer + date). ÀÌ·¯ÇÑ Æí¼ºÀº ´Ù¸¥ ÇÑÂʸ¸ °¡¸®Åµ´Ï´Ù.
Table 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:00' |
| + | date '2001-09-28' + time '03:00' | timestamp '2001-09-28 03:00:00' |
| + | interval '1 day' + interval '1 hour' | interval '1 day 01:00:00' |
| + | timestamp '2001-09-28 01:00' + interval '23 hours' | timestamp '2001-09-29 00:00:00' |
| + | time '01:00' + interval '3 hours' | time '04:00:00' |
| - | - interval '23 hours' | interval '-23:00: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:00' |
| - | time '05:00' - time '03:00' | interval '02:00:00' |
| - | time '05:00' - interval '2 hours' | time '03:00:00' |
| - | timestamp '2001-09-28 23:00' - interval '23 hours' | timestamp '2001-09-28 00:00:00' |
| - | interval '1 day' - interval '1 hour' | interval '1 day -01:00:00' |
| - | timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00' | interval '1 day 15:00:00' |
| * | 900 * interval '1 second' | interval '00:15:00' |
| * | 21 * interval '1 day' | interval '21 days' |
| * | double precision '3.5' * interval '1 hour' | interval '03:30:00' |
| / | interval '1 hour' / double precision '1.5' | interval '00:40:00' |
Table 9-26. ÀÏÀÚ/½Ã°¢ ÇÔ¼ö
| ÇÔ¼ö¸í | ¹Ýȯ°ªÇü | ¼³¸í | ¿¹ | °á°ú |
|---|---|---|---|---|
age(timestamp, timestamp)
|
interval | Àμö°£ÀÇ °¨»ê. ¿¬µµ¿Í ¿ùÀ» »ç¿ëÇÑ"½Éº¼¿¡ ÀÇÇÑ"°á°ú¸¦ »ý¼º | age(timestamp '2001-04-10', timestamp '1957-06-13') | 43 years 9 mons 27 days |
age(timestamp)
|
interval |
current_date·ÎºÎÅÍ °¨»ê |
age(timestamp '1957-06-13') | 43 years 8 mons 3 days |
clock_timestamp()
|
timestamp with time zone | ÇöÀçÀÇ ÀÏÀÚ¿Í ½Ã°¢ÀÔ´Ï´Ù. (¹®Àå ½ÇÇൿ¾È º¯°æµË´Ï´Ù. ) Section 9.9.4(À»)¸¦ ÂüÁ¶. | ||
current_date
|
date | ÇöÀçÀÇ ÀÏÀÚ. Section 9.9.4(À»)¸¦ ÂüÁ¶ | ||
current_time
|
time with time zone | ÇöÀçÀÇ ½Ã°¢. Section 9.9.4(À»)¸¦ ÂüÁ¶. | ||
current_timestamp
|
timestamp with time zone | ÇöÀçÀÇ ÀÏÀÚ¿Í ½Ã°¢(ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction)ÀÇ °³½Ã ÀÏÀÚ ½Ã°¢). Section 9.9.4(À»)¸¦ ÂüÁ¶. | ||
date_part(text, timestamp)
|
double precision | ¼ºêÇʵåÀÇ Ãëµæ(extract¿Í °°´Ù). Section 9.9.1(À»)¸¦ ÂüÁ¶.
|
date_part('hour', timestamp '2001-02-16 20:38:40') | 20 |
date_part(text, interval)
|
double precision | ¼ºêÇʵåÀÇ Ãëµæ(extract¿Í °°´Ù). Section 9.9.1(À»)¸¦ ÂüÁ¶.
|
date_part('month', interval '2 years 3 months') | 3 |
date_trunc(text, timestamp)
|
timestamp | ÁöÁ¤µÈ Á¤¹Ðµµ·Î Àß¶ó¼ ¹ö¸². Section 9.9.2µµ ÂüÁ¶. | date_trunc('hour', timestamp '2001-02-16 20:38:40') | 2001-02-16 20:00:00 |
extract(field from
timestamp)
|
double precision | ¼ºêÇʵåÀÇ Ãëµæ. Section 9.9.1(À»)¸¦ ÂüÁ¶. | extract(hour from timestamp '2001-02-16 20:38:40') | 20 |
extract(field from
interval)
|
double precision | ¼ºêÇʵåÀÇ Ãëµæ. Section 9.9.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 |
justify_days(interval)
|
interval | 30 ÀÏÁֱⰡ 1¿ùÀ» ³ªÅ¸³»µµ·Ï ½Ã°£ °£°ÝÀ» Á¶Á¤ | justify_days(interval '30 days') | 1 month |
justify_hours(interval)
|
interval | 24½Ã°£À» 1ÀÏ·Î ÇÒ ½Ã°£ °£°ÝÀÇ Á¶Á¤ | justify_hours(interval '24 hours') | 1 day |
justify_interval(interval)
|
interval |
justify_days¹×justify_hours¸¦ »ç¿ëÇÏ¿©, Ãß°¡ÀûÀÎ ºÎÈ£¿¡ ÀÇÇÑ Á¶Á¤À» ½Ç½ÃÇÑ ½Ã°£ °£°ÝÀÇ Á¶Á¤ |
justify_interval(interval '1 mon -1 hour') | 29 days 23:00:00 |
localtime
|
time | ÇöÀçÀÇ ½Ã°¢. Section 9.9.4(À»)¸¦ ÂüÁ¶. | ||
localtimestamp
|
timestamp | ÇöÀçÀÇ ÀÏÀÚ¿Í ½Ã°¢(ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction)ÀÇ °³½Ã). Section 9.9.4(À»)¸¦ ÂüÁ¶. | ||
now()
|
timestamp with time zone | ÇöÀçÀÇ ÀÏÀÚ¿Í ½Ã°¢(ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction)ÀÇ °³½Ã). Section 9.9.4(À»)¸¦ ÂüÁ¶. | ||
statement_timestamp()
|
timestamp with time zone | ÇöÀçÀÇ ÀÏÀÚ¿Í ½Ã°¢(ÇöÀçÀÇ ¸í·ÉÀÇ °³½Ã). Section 9.9.4(À»)¸¦ ÂüÁ¶. | ||
timeofday()
|
text | ÇöÀçÀÇ ÀÏÀÚ¿Í ½Ã°¢. (clock_timestamp¿Í À¯»çÇմϸ¸,text¹®ÀÚ¿·Î¼ ¹ÝȯÇÕ´Ï´Ù. )
Section 9.9.4(À»)¸¦ ÂüÁ¶.
|
||
transaction_timestamp()
|
timestamp with time zone | ÇöÀçÀÇ ÀÏÀÚ¿Í ½Ã°¢(ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction)ÀÇ °³½Ã). Section 9.9.4(À»)¸¦ ÂüÁ¶. |
ÀÌ·¯ÇÑ ÇÔ¼ö¿¡ ´õÇÏ¿©OVERLAPS SQL ¿¬»êÀÚ°¡ Áö¿øµÇ°í ÀÖ½À´Ï´Ù.
( start1 , end1 ) OVERLAPS ( start2 , end2 ) ( start1 , length1 ) OVERLAPS ( start2 , length2 )
ÀÌ ½ÄÀº, 2°³ÀÇ ½Ã°£ °£°ÝÀÌ °ãÄ¡´Â(±× Á¾´ÜÀ¸·Î Á¤Àǵ˴ϴÙ) ¶§¿¡ true¸¦ ¹ÝȯÇÕ´Ï´Ù. °ãÄ¡Áö ¾Ê´Â °æ¿ì´Â false¸¦ ¹ÝȯÇÕ´Ï´Ù. Á¾´ÜÀº ÀÏÀÚ, ½Ã°¢, ŸÀÓ ½ºÅÆÇÁ, ȤÀº, ÀÏÀÚ/½Ã°¢/ŸÀÓ ½ºÅÆÇÁ¿¡ °è¼ÓµÇ´Â ½Ã°£ °£°ÝÀ¸·Î ÁöÁ¤µË´Ï´Ù.
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
timestamp with time zoneÀÇ °ª¿¡intervalÀÇ °ªÀ» ´õÇÒ ¶§(¶Ç´Âtimestamp with time zoneÀÇ °ªÀ¸·ÎºÎÅÍintervalÀÇ °ªÀ» °øÁ¦ÇÒ ¶§) ÀÏÀÇ ºÎºÐÀº, ÀÏÀÇ ¼ö·Î ³ªÅ¸³ timestamp with time zoneÀÇ ÀÏÀÚ¸¦ ¸ÕÀú ÁøÇàÇÕ´Ï´Ù(ȤÀº ÈÄ¿¡ µÇµ¹¸³´Ï´Ù). ¼¸ÓŸÀÓ¿¡ÀÇ ÀÌÇà¿¡ °ÉÄ£ º¯°æ¿¡ °üÇØ¼´Â(¼¼¼ÇÀÇ ½Ã°£´ë°¡ DST¸¦ ÀνÄÇÏ°Ô µÇ¾î ÀÖÀ¸¸é),interval '1 day'°¡interval '24 hours'¿¡ µ¿ÀÏÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ¿¹¸¦ µé¸é, ¼¼¼ÇÀÇ ½Ã°£´ë°¡ CST7CDT·Î ¼³Á¤µÇ¾î ÀÖÀ» ¶§¿¡, timestamp with time zone '2005-04-02 12:00-07' + interval '1 day' ´Â,timestamp with time zone '2005-04-03 12:00-06'¸¦ °¡Á®¿É´Ï´Ù. ÇÑÆí °°Àº Ãʱâtimestamp with time zone¿¡interval '24 hours'¸¦ ´õÇϸé,timestamp with time zone '2005-04-03 13:00-06'¶ó°í ÇÏ´Â °á°ú°¡ µË´Ï´Ù. ±× ÀÌÀ¯´ÂCST7CDT½Ã°£´ë¿¡2005-04-03 02:00·Î ¼¸ÓŸÀÓ¿¡ÀÇ º¯°æÀÌ Àֱ⠶§¹®ÀÔ´Ï´Ù.
EXTRACT, date_part
EXTRACT( field FROM source )
extractÇÔ¼ö´Â, ÀÏÀÚ/½Ã°¢ÀÇ °ªÀ¸·ÎºÎÅÍ ¿¬µµ³ª ³¯Â¥/½Ã°£µîÀÇ ¼ºêÇʵ带 ÃßÃâÇÕ´Ï´Ù.
source
´ÂtimestampÇü,timeÇü, ¶Ç´ÂintervalÇüÀÇ °ªÀÇ ½ÄÀ̾î¾ß ÇÕ´Ï´Ù
(dateÇüÀÇ ½ÄÀºtimestampÇü¿¡ ij½ºÆ® µÇ±â ¶§¹®¿¡, ¶È°°ÀÌ »ç¿ë °¡´ÉÇÕ´Ï´Ù).
field
´Â sourceÀÇ °ªÀ¸·ÎºÎÅÍ ¾î´À Çʵ带 ÃßÃâÇÏ´ÂÁö¸¦ ¼±ÅÃÇÏ´Â ½Äº°ÀÚ È¤Àº ¹®ÀÚ¿ÀÔ´Ï´Ù.
extractÇÔ¼ö´Âdouble precisionÇüÀÇ °ªÀ» ¹ÝȯÇÕ´Ï´Ù. ÀÌÇÏ¿¡ À¯È¿ÇÑ Çʵå¸íÀ» ³ªÅ¸³À´Ï´Ù.
¼¼±â
SELECT EXTRACT(CENTURY FROM TIMESTAMP '2000-12-16 12:21:13'); Result: 20 SELECT EXTRACT(CENTURY FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 21
´ç½ÃÀÇ »ç¶÷µé¿¡°Ô´Â ±×·¯ÇÑ ÀǽÄÀº ¾ø¾ú½À´Ï´Ù¸¸, ÃÖÃÊÀÇ ¼¼±â´Â0001-01-01 00:00:00 AD·ÎºÎÅÍ ½ÃÀ۵˴ϴÙ. ÀÌ Á¤ÀÇ´Â ¸ðµç ±×·¹°í¸® ¾È ´Þ·Â(ÀÏ·Â)À» »ç¿ëÇÏ´Â ³ª¶ó¿¡¼ Àû¿ëµÇ°í ÀÖ½À´Ï´Ù. 0À̶ó°í ÇÏ´Â °ªÀÇ ¼¼±â´Â ¾ø½À´Ï´Ù. -1ÀÇ ´ÙÀ½Àº 1ÀÔ´Ï´Ù. ÀÌ Á¤ÀÇ¿¡ ³³µæÇÒ ¼ö ¾øÀ¸¸é, ºÒÆòÀ» ¹ÙÆ¼Ä ·Î¸¶¼ºÆÄ¿ï·Î´ë ¼º´çÀÇ ·Î¸¶È²¿Õ¿¡°Ô ÀüÇØ ÁÖ¼¼¿ä.
PostgreSQL¸±¸®½º 8.0 ÀÌÀüÀ¸·Î´Â, ¼¼±âÀÇ ¹øÈ£ºÎÀÇ °ü½À¿¡ µû¸£°í ÀÖÁö ¾Ê¾Ò½À´Ï´Ù. ´ÜÁö ¿¬µµ¸¦ 100À¸·Î °è»êÇÑ °ÍÀ» µ¹·ÁÁÖ°í ÀÖ¾ú½À´Ï´Ù.
(¿ù³»ÀÇ) ÀÏÀÚ Çʵå(1~31)
SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 16
¿¬µµ Çʵ带 10À¸·Î ³ª´« °Í
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
extractÇÔ¼öÀÇ ¿äÀÏ ¹øÈ£ÁöÁ¤Àº, to_charÇÔ¼öÀÇ ¿äÀÏ ¹øÈ£ÁöÁ¤°ú ´Ù¸¨´Ï´Ù.
¿¬³»¿¡¼ÀÇ Åë»ê ³¯Â¥(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
ÀÌÇÏ¿¡, ÀÌ °æ°úÃʼö¸¦ ŸÀÓ ½ºÅÆÇÁ°ªÀ¸·Î º¯È¯ÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³À´Ï´Ù.
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 982384720 * INTERVAL '1 second';
½Ã°£ÀÇ Çʵå(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
¹Ð·¹´Ï¾ö(1 õ³â ±â°£)
SELECT EXTRACT(MILLENNIUM FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 3
1900³â´ëÀÇ ÇØ´Â Á¦2 ¹Ð·¹´Ï¾öÀÔ´Ï´Ù. Á¦3 ¹Ð·¹´Ï¾öÀº 2001³â 1¿ù 1ÀϺÎÅÍ ½ÃÀ۵˴ϴÙ.
PostgreSQL¸±¸®½º 8.0 ÀÌÀüÀ¸·Î´Â, ¹Ð·¹´Ï¾öÀÇ ¹øÈ£ºÎÀÇ °ü½À¿¡ µû¸£°í ÀÖÁö ¾Ê¾Ò½À´Ï´Ù. ´ÜÁö ¿¬µµ Çʵ带 1000À¸·Î ³ª´« °ªÀ» ¹ÝȯÇÏ¿´½À´Ï´Ù.
¼Ò¼ö ºÎºÐµµ Æ÷ÇÔÇØ, 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
±× ³¯ÀÌ Æ÷ÇԵǴ ¿¬µµÀÇ 4ºÐ±â(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·ÎºÎÅÍÀÇ ½Ã°£´ë ¿ÀÇÁ¼Â(offset). ¾çÀÇ °ªÀº UTCº¸´Ù µ¿ÂÊÀÇ ½Ã°£´ë¿¡ ´ëÀÀÇØ, À½ÀÇ °ªÀº UTCº¸´Ù ¼ÂÊÀÇ ½Ã°£´ë¿¡ ´ëÀÀ.
½Ã°£´ë ¿ÀÇÁ¼Â(offset)½Ã°£ÀÇ ¼ººÐ.
½Ã°£´ë ¿ÀÇÁ¼Â(offset)ÀÇ ºÐÀÇ ¼ººÐ.
±× ³¯ÀÇ ¿¬°£ Åë»ê¿¡¼ÀÇ ÁÖ¸¦ °è»êÇÕ´Ï´Ù. (ISO 8601ÀÇ) Á¤ÀÇ¿¡¼´Â, ±× ÇØÀÇ 1¿ù 4ÀÏÀÇ ÁÖ¸¦ Á¦1ÁÖ·Î ÇÕ´Ï´Ù (ISO 8601¿¡¼´Â, ÁÖ´Â ¿ù¿äÀϺÎÅÍ ½ÃÀ۵˴ϴÙ). Áï, ±× ¿¬µµÀÇ ÃÖÃÊÀÇ ¸ñ¿äÀÏÀÌ ÀÖ´Â ÁÖ°¡ ±× ¿¬µµÀÇ Á¦1ÁÖ°¡ µÈ´Ù.
À̰Ϳ¡ ÀÇÇØ, 1¿ùÀÇ ÃʼøÀº Àü³âÀÇ Á¦52ÁÖ È¤Àº Á¦53ÁÖ°¡ µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é,2005-01-01Àº 2004³âÀÇ Á¦53ÁÖÀ̸ç,2006-01-01´Â 2005³âÀÇ Á¦52ÁÖÀÇ ÀϺÎÀÔ´Ï´Ù.
SELECT EXTRACT(WEEK FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 7
¿¬µµ Çʵå. 0 AD°¡ Á¸ÀçÇÏÁö ¾Ê´Ù´Â °ÍÀ» ±â¾ïÇϼ¼¿ä. ÀÌ ¶§¹®¿¡ADÀÇ ¿¬µµºÎÅÍBCÀÇ ¿¬µµ¸¦ °¨¼Ò ÇÒ ¶§¿¡´Â ÁÖÀǰ¡ ÇÊ¿äÇÕ´Ï´Ù.
SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 2001
extractÇÔ¼ö´Â ¿ø·¡ ¿¬»ê ó¸®ÀÇ ¸ñÀûÀ̾ú½À´Ï´Ù.
ÀÏÀÚ/½Ã°¢ÀÇ °ªÀ» Ç¥½ÃÇÏ´Â ¸ñÀû¿¡¼ÀÇ ¼½Ä¿¡ ´ëÇØ¼´ÂSection 9.8À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
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
date_truncÇÔ¼ö´Â °³³äÀûÀ¸·Î ¼öÄ¡¿¡ ´ëÇÑtruncÇÔ¼ö ¿Í À¯»çÇÕ´Ï´Ù.
date_trunc('
field
',
source
)
source ´Â, µ¥ÀÌÅÍÇütimestampȤÀºintervalÀÇ Ç¥Çö°ª½ÄÀÔ´Ï´Ù (µ¥ÀÌÅÍÇüdate¿Ítime´Â °¢°¢ ÀÚµ¿ÀûÀ¸·ÎtimestampȤÀºinterval¿¡ ij½ºÆ® µË´Ï´Ù). field ´Â, ÀԷ°ªÀ» ¾î´À Á¤¹Ðµµ·Î Àß¶ó ¹ö¸®´ÂÁö¸¦ ¼±ÅÃÇÕ´Ï´Ù. ¹Ýȯ°ªÀº, ¼±ÅÃµÈ °Í ÀÌÇϸ¦ 0À¸·Î ¼³Á¤(Àϰú ¿ùÀÇ °æ¿ì´Â 1À¸·Î ¼³Á¤)ÇÑ, ¸ðµç Çʵ带 °¡Áö´ÂtimestampȤÀºintervalÇüÀÔ´Ï´Ù.
field ÀÇ À¯È¿°ª¿¡´Â ´ÙÀ½ÀÇ °ÍÀÌ ÀÖ½À´Ï´Ù.
| microseconds |
| milliseconds |
| second |
| minute |
| hour |
| day |
| week |
| month |
| quarter |
| 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±¸¹®À» »ç¿ëÇÏ´Â °ÍÀ¸·Î½á, ŸÀÓ ½ºÅÆÇÁ¸¦ ´Ù¸¥ ½Ã°£´ë·Î º¯È¯ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
Table 9-27¿¡¼ ±× Á¾·ù¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù.
Table 9-27. AT TIME ZONE Variants
| ½Ä | ¹Ýȯ°ª | ¼³¸í |
|---|---|---|
| timestamp without time zone AT TIME ZONE zone | timestamp with time zone | ÁÖ¾îÁø ŸÀÓ ½ºÅÆÇÁ without time zone °¡ ÁöÁ¤µÈ ½Ã°£´ë¿¡ ÀÖ´Ù°í Ãë±ÞÇÕ´Ï´Ù. |
| timestamp with time zone AT TIME ZONE zone | ÁÖ¾îÁø ŸÀÓ ½ºÅÆÇÁ with time zone ¸¦ ½Å±ÔÀÇ ½Ã°£´ë·Î º¯È¯ÇÕ´Ï´Ù. | |
| time with time zone AT TIME ZONE zone | time with time zone | ÁÖ¾îÁ³À» ¶§ °¢ with time zone ¸¦ ½Å±Ô ½Ã°£´ë·Î º¯È¯ÇÕ´Ï´Ù. |
ÀÌ·¯ÇÑ ½Ä¿¡¼´Â, ¼³Á¤ÇÏ´Â ½Ã°£´ë zone ´Â, ('PST'¿Í °°Àº) ÅØ½ºÆ® ¹®ÀÚ¿, ¶Ç´Â(INTERVAL '-08:00'¿Í °°Àº) ½Ã°£ °£°ÝÀ¸·Î ÁöÁ¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÅØ½ºÆ®ÀÇ °æ¿ì,Section 8.5.3¿¡ ³ªÅ¸³½ ¹æ¹ýÀ¸·Î ½Ã°£´ë ¸íĪÀ» ÁöÁ¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù(·ÎÄÃÀÎ ½Ã°£´ë¸¦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-7)·Î º¯È¯µË´Ï´Ù. 2¹øÂ°ÀÇ ¿¹´Â, EST(UTC-5)·Î ÁöÁ¤µÈ ŸÀÓ ½ºÅÆÇÁ¸¦ »ç¿ëÇØ, MST(UTC-7)¿¡¼ÀÇ ·ÎÄà ½Ã°£À¸·Î º¯È¯Çϰí ÀÖ½À´Ï´Ù.
ÇÔ¼ötimezone(
zone
,
timestamp
)´Â, SQL ÁذÅÀÇ ±¸¹®
timestamp
AT TIME ZONE
zone
¿Í µ¿ÀÏÇÕ´Ï´Ù.
PostgreSQL´Â, ÇöÀçÀÇ ÀÏÀÚ ¹× ½Ã°¢¿¡ °ü°èµÈ °ªÀ» ¹ÝȯÇÏ´Â ¸¹Àº ÇÔ¼ö¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Ç¥ÁØ SQL ÇÔ¼ö´Â ¸ðµÎ, ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction)ÀÇ °³½Ã½Ã°¢¿¡ ±Ù°ÅÇÑ °ªÀ» ¹ÝȯÇÕ´Ï´Ù.
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ÇÔ¼ö¿¡¼´Â, Á¤¹ÐµµÀÇ ÆÄ¶ó¹ÌÅ͸¦ ¿É¼ÇÀ¸·Î ÁÙ ¼ö°¡ ÀÖ¾î , ÃÊÇʵåÀÇ ¸¹Àº ¼Ò¼öºÎºÐÀÇ °á°ú¸¦ °¡Á®¿É´Ï´Ù.
Á¤¹ÐµµÀÇ ÆÄ¶ó¹ÌÅͰ¡ ¾ø´Â °æ¿ì, °á°ú´Â »ç¿ë °¡´ÉÇÑ ÃÖ´ë Á¤¹Ðµµ·Î Ãâ·ÂµË´Ï´Ù.
¿¹£º
Some examples:
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
ÀÌ·¯ÇÑ ÇÔ¼ö´Â, ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction)ÀÇ °³½Ã½Ã°¢À» ¹ÝȯÇÕ´Ï´Ù. ÀÌ °ªÀº, Æ®·£Àè¼Ç(transaction)ÀÌ ½ÇÇàµÇ°í ÀÖ´Â µ¿¾ÈÀº º¯ÈÇÏÁö ¾Ê½À´Ï´Ù. À̰ÍÀº, ´ÙÀ½ÀÇ ±â´ÉÀ» °ËÅäÇÑ °á°úÀÔ´Ï´Ù. ´ÜÀÏ Æ®·£Àè¼Ç(transaction)·Î,"current"½Ã°£À» Àϰü¼ºÀ» °¡Áø Ç¥ÇöÀ» ½Ç½ÃÇÒ ¼ö°¡ ÀÖµµ·Ï ÇÏ´Â °ÍÀ» ¸ñÀûÀ¸·Î ÇÏ¿©, ÀÌ ¶§¹®¿¡, µ¿ÀÏ Æ®·£Àè¼Ç(transaction)À¸·Î ¸î ȸ º¯°æÀ» ½Ç½ÃÇØµµ µ¿ÀÏÇÑ Å¸ÀÓ ½ºÅÆÇÁ¸¦ »ý¼ºÇÕ´Ï´Ù.
Note: ´Ù¸¥ µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ¿¡¼´Â, ÀÌ·¯ÇÑ °ªÀ» º¸´Ù ºó¹øÇÏ°Ô Áõ°¡½ÃŰ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
PostgreSQL´Â ¶Ç, ÇÔ¼ö¸¦ È£ÃâÇßÀ» ¶§ÀÇ ½ÇÁ¦ÀÇ ÇöÀç ½Ã°¢À̳ª ÇöÀçÀÇ ¹®ÀåÀÇ °³½Ã½Ã°¢À» ¹ÝȯÇÏ´Â ÇÔ¼öµµ Á¦°øÇÕ´Ï´Ù. ºñÇ¥ÁØ SQLÀÇ ÇÔ¼öÀÇ ÀüÀ϶÷À» ÀÌÇÏ¿¡ ³ªÅ¸³À´Ï´Ù.
now() transaction_timestamp() statement_timestamp() clock_timestamp() timeofday()
now()´ÂCURRENT_TIMESTAMP¿Í °°Àº °ÍÀ¸·Î, ÀüÅëÀûÀÎPostgreSQLÇÔ¼öÀÔ´Ï´Ù.
transaction_timestamp()´ÂCURRENT_TIMESTAMP¿Í °°Àº °ÍÀÔ´Ï´Ù¸¸, ¸íÈ®ÇÏ°Ô ¹«¾ùÀÌ ¹ÝȯµÇ´ÂÁö¸¦ ³ªÅ¸³»´ÂÁö Áö¸íµÇ¾î ÀÖ½À´Ï´Ù.
statement_timestamp()´Â ÇöÀçÀÇ ¹®ÀåÀÇ ½ÇÇà °³½Ã½Ã°¢À» ¹ÝȯÇÏ´Â °ÍÀÔ´Ï´Ù(º¸´Ù ±¸Ã¼ÀûÀ¸·Î ¸»Çϸé, Á÷ÀüÀÇ Ä¿¸àµå ¸Þ¼¼Áö¸¦ Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¹Þ¾ÒÀ» ¶§ÀÇ ½Ã°¢ÀÔ´Ï´Ù).
statement_timestamp()¹×transaction_timestamp()´Â Æ®·£Àè¼Ç(transaction)ÀÇ ÃÖÃÊÀÇ Ä¿¸àµå¿¡¼´Â °°Àº °ªÀ» ¹ÝȯÇÕ´Ï´Ù¸¸, ±× ÈÄ¿¡ °è¼ÓÇÏ´Â Ä¿¸àµå¿¡¼´Â ´Ù¸¦ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.
clock_timestamp()´Â ½ÇÁ¦ÀÇ ÇöÀç ½Ã°¢À» µ¹·ÁÁֱ⠶§¹®¿¡, ±× °ªÀº ´ÜÀÏÀÇ SQL Ä¿¸àµå¿Íµµ ´Ù¸¨´Ï´Ù.
timeofday()´ÂPostgreSQLÀÇ ¿ª»çÀûÀÎ ÇÔ¼öÀÔ´Ï´Ù.
clock_timestamp()°°ÀÌ, ½ÇÁ¦ÀÇ ÇöÀç ½Ã°¢À» ¹ÝȯÇÕ´Ï´Ù¸¸,timestamp with time zoneÇüÀÇ °ªÀº ¾Æ´Ï°í, Á¤ÇüµÈtext¹®ÀÚ¿À» ¹ÝȯÇÕ´Ï´Ù.
¸ðµç ÀÏÀÚ/½Ã°¢ÇüÀº ¶Ç, ÇöÀçÀÇ ÀÏÀÚ¿Í ½Ã°¢(¹Ýº¹ÇÕ´Ï´Ù¸¸, Æ®·£Àè¼Ç(transaction)ÀÇ °³½Ã½Ã°¢À¸·Î¼ ÇØ¼®µË´Ï´Ù)À» ³ªÅ¸³»´Â Ư¼öÇÑ ¸®ÅÍ·²°ª now¸¦ ¹Þ¾ÆµéÀÔ´Ï´Ù. µû¶ó¼, ¾Æ·¡¿Í °°Àº 3°³ÀÇ ½ÇÇà °á°ú´Â ¸ðµÎ °°Àº °ªÀ» ¹ÝȯÇÕ´Ï´Ù.
SELECT CURRENT_TIMESTAMP; SELECT now(); SELECT TIMESTAMP 'now'; -- incorrect for use with DEFAULT
Tip: Å×À̺íÀ» ÀÛ¼ºÇÒ ¶§,DEFAULT±¸¸¦ ÁöÁ¤Çϴµ¥ 3¹øÂ°ÀÇ Çü½ÄÀ» »ç¿ëÇÏ·Á°í´Â »ý°¢ÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. Á¤¼ö°¡ ÇØ¼®µÇ¾úÀ» ¶§, ½Ã½ºÅÛÀÌnow¸¦timestamp·Î º¯È¯ÇϹǷÎ, µðÆúÆ®°ªÀ¸·Î¼ Å×À̺íÀÌ ÀÛ¼ºµÇ¾úÀ» ¶§ÀÇ ½Ã°¢ÀÌ »ç¿ëµË´Ï´Ù. ÃÖÃÊÀÇ 2°³ÀÇ Çü½ÄÀº ÇÔ¼ö È£ÃâÀ» À§ÇØ µðÆúÆ®°ªÀÌ »ç¿ëµÉ ¶§±îÁö Æò°¡µÇÁö ¾Ê½À´Ï´Ù. ±×·¯¹Ç·Î, ÀÌ·¯ÇÑ ÇÔ¼ö´Â ¿ÀÇ »ðÀÔ ½Ã°£À» µðÆúÆ®·Î ÇÏ´Â µ¿ÀÛÀ» ½ÇÇàÇÕ´Ï´Ù.
ÀÌÇÏÀÇ ÇÔ¼ö´Â, ¼¹ö ÇÁ·Î¼¼½ºÀÇ ½ÇÇàÀ» Áö¿¬ ½Ã۱â À§Çؼ»ç¿ë °¡´ÉÇÕ´Ï´Ù.
pg_sleep( seconds )
pg_sleep´Â,
seconds
Ãʰ¡ °æ°úÇÒ ¶§±îÁö, ÇöÀçÀÇ ¼¼¼ÇÀÇ ÇÁ·Î¼¼½º¸¦ Á¤Áö½Ãŵ´Ï´Ù.
seconds
´Âdouble precisionÇüÀÇ °ªÀÔ´Ï´Ù.
±× ¶§¹®¿¡, ¼Ò¼ö ´ÜÀ§·Î Áö¿¬Ãʼö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
SELECT pg_sleep(1.5);
Note: Á¤Áö ½Ã°£ÀÇ È¿°úÀûÀÎ ÇØ°áÃ¥Àº ƯÁ¤ÇÑ Ç÷§Æû¿¡ ÀÖ½À´Ï´Ù. 0.01Ãʰ¡ ÀϹÝÀûÀÎ °ªÀÔ´Ï´Ù. Áö¿¬Àº Àû¾îµµ ÁöÁ¤ÇÑ ´ë·Î ÇàÇØÁý´Ï´Ù. ¼¹öÀÇ ºÎÇϰ¡ ¿äÀÎÀÌ µÇ¾î, º¸´Ù ±æ¾îÁú °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.
| Warning |
|
|
| [1] |
ÀÛµ¿ ½Ã½ºÅÛÀ¸·Î À±Ãʰ¡ ½ÇÇàµÇ°í ÀÖ´Â °æ¿ì´Â 60±îÁöÆ÷ÇÔ. |