[ ÀÏÀÚ, ½Ã°£, ºÐ °ü·Ã ÇÔ¼ö]
1. ÇöÀç ³â/¿ù/ÀÏ/½Ã°£/ºÐ/ÃÊ °³º°·Î±¸Çϱâ
¿¬µµ - sql ¹®Àå : SELECT YEAR (current timestamp) FROM sysibm.sysdummy1
¿ù - sql ¹®Àå : SELECT MONTH (current timestamp) FROM sysibm.sysdummy1
ÀÏÀÚ - sql ¹®Àå : SELECT DAY (current timestamp) FROM sysibm.sysdummy1
½Ã°£ - sql ¹®Àå : SELECT HOUR(current timestamp) FROM sysibm.sysdummy1
ºÐ - sql ¹®Àå : SELECT MINUTE(current timestamp) FROM sysibm.sysdummy1
ÃÊ - sql ¹®Àå : SELECT SECOND(current timestamp) FROM sysibm.sysdummy1
MICROSECOND - sql ¹®Àå : SELECT MICROSECOND(current timestamp) FROM sysibm.sysdummy1
2. ÇöÀç ÀÏÀÚ/½Ã°£:ºÐ:ÃÊ/ÀÏÀÚ ½Ã°£:¹®:ÃÊ ±¸Çϱâ
ÇöÀçÀÏÀÚ : sql ¹®Àå : SELECT current date FROM sysibm.sysdummy1
SELECT DATE (current timestamp) FROM sysibm.sysdummy1
°á°ú : 2007-08-03
ÇöÀç ½Ã°£:ºÐ:ÃÊ : sql¹®Àå : SELECT current time FROM sysibm.sysdummy1
SELECT TIME (current timestamp) FROM sysibm.sysdummy1
°á°ú : 20:55:36
ÇöÀç ÀÏÀÚ ½Ã°£:ºÐ:ÃÊ : sql¹®Àå : SELECT current timestamp FROM sysibm.sysdummy1
°á°ú : 2007-02-14 20:56:08.217776
Âü°í : sysibm.sysdummy1 Å×À̺íÀº DB2 ·¹Áö½ºÅÍÀÇ °ªÀ» ã´Âµ¥ »ç¿ëÇÒ ¼ö Àִ Ưº°ÇÑ Àθ޸ð¸®(in-memory) Å×À̺íÀÌ´Ù.
999. SQL ³¯Â¥¿Í ½Ã°£ ÇÔ¼ö
DAYNAME ÀÎÀÚ¿¡ ¿äÀÏ À̸§(¿¹, ±Ý¿äÀÏ)ÀÌ Æ÷ÇÔµÈ È¥ÇÕ ¹®ÀÚ¿À» ¸®ÅÏ.
DAYOFWEEK 1¿¡¼ 7±îÁö Á¤¼ö °ªÀ¸·Î ¿äÀÏÀ» ³ªÅ¸³½´Ù. ¿©±â¿¡¼ 1Àº ÀÏ¿äÀÏÀ» ÀǹÌÇÑ´Ù.
DAYOFWEEK_ISO 1¿¡¼ 7±îÁö Á¤¼ö °ªÀ¸·Î ¿äÀÏÀ» ³ªÅ¸³½´Ù. ¿©±â¿¡¼ 1Àº ¿ù¿äÀÏÀÌ´Ù.
DAYOFYEAR 1¿¡¼ 366 ±îÁöÀÇ Á¤¼ö·Î ³¯(day)À» ¸®ÅÏ.
DAYS ³¯Â¥¸¦ Á¤¼ö·Î ¸®ÅÏ.
JULIAN_DAY January 1, 4712 B.C. (Julian ´Þ·ÂÀÇ ½ÃÀÛ)ºÎÅÍ ÀÎÀÚ¿¡ ÁöÁ¤µÈ ³¯Â¥ °ª±îÁö Á¤¼ö·Î ³¯¼ö¸¦ ³ªÅ¸³¿.
MIDNIGHT_SECONDS 0¿¡¼ 86400 ±îÁöÀÇ Á¤¼ö °ªÀ¸·Î ÀÚÁ¤(midnight)°ú ÀÎÀÚ¿¡¼ ÁöÁ¤µÈ ½Ã°£ °ª »çÀÌÀÇ ÃÊÀÇ °ªÀ» ³ªÅ¸³¿.
MONTHNAME ´ÞÀÇ À̸§(¿¹¸¦ µé¾î, January)À» Æ÷ÇÔÇϰí Àִ ȥÇÕ ¹®ÀÚ¿ ¸®ÅÏ.
TIMESTAMP_ISO ³¯Â¥, ½Ã°£, ŸÀÓ½ºÅÆÇÁ ÀÎÀÚ¿¡ ±â¹ÝÇÑ Å¸ÀÓ½ºÅÆÇÁ °ªÀ» ¸®ÅÏ.
TIMESTAMP_FORMAT ¹®ÀÚ ÅÛÇø´À» »ç¿ëÇÏ¿© ÀÎÅÍÇÁ¸®ÆÃ µÈ ¹®ÀÚ¿¿¡¼ ŸÀÓ½ºÅÆÇÁ¸¦ ¸®ÅÏ.
TIMESTAMPDIFF µÎ ŸÀÓ½ºÅÆÇÁµé °£ Â÷ÀÌ¿¡ ±â¹ÝÇÏ¿©, ù ¹øÂ° ÀÎÀÚ¿¡¼ Á¤ÀÇµÈ À¯ÇüÀÇ ÀÎÅ͹ú ¼ö¸¦ ¸®ÅÏ.
TO_CHAR ¹®ÀÚ ÅÛÇø´À» »ç¿ëÇÏ¿© Æ÷¸ËµÈ ŸÀÓ½ºÅÆÇÁÀÇ ¹®ÀÚ ±¸ÇöÀ» ¸®ÅÏ. TO_CHAR´Â VARCHAR_FORMATÀÇ µ¿ÀǾîÀÌ´Ù.
TO_DATE ¹®ÀÚ ÅÛÇø´À» »ç¿ëÇÏ¿© ÀÎÅÍÇÁ¸®ÆÃ µÈ ¹®ÀÚ¿¿¡¼ ŸÀÓ½ºÅÆÇÁ¸¦ ¸®ÅÏ. TO_DATE´Â TIMESTAMP_FORMATÀÇ µ¿ÀǾîÀÌ´Ù.
WEEK 1¿¡¼ 54±îÁö Á¤¼ö °ªÀ¸·Î ÁÖ(week)¸¦ ¸®ÅÏÇÔ. ÁÖ´Â Sunday·Î ½ÃÀÛÇÑ´Ù.
WEEK_ISO 1¿¡¼ 53±îÁö Á¤¼ö °ªÀ¸·Î ÁÖ¸¦ ¸®ÅÏÇÔ.
999. ³¯Â¥ Æ÷¸Ë º¯°æ
³¯Â¥¿¡ »ç¿ëµÇ´Â ±âº» Æ÷¸ËÀº µ¥ÀÌÅͺ£À̽ºÀÇ ¿µ¿ª(territory) ÄÚµå·Î °áÁ¤µÈ´Ù.
(À̰ÍÀº µ¥ÀÌÅͺ£À̽º »ý¼º ¶§ ÁöÁ¤µÉ ¼ö ÀÖ´Ù.) ¿¹¸¦ µé¾î, µ¥ÀÌÅͺ£À̽º°¡
territory=US¸¦ »ç¿ëÇÏ¿© ¸¸µé¾îÁ³´Ù¸é ³¯Â¥ Æ÷¸ËÀº ´ÙÀ½°ú °°À» °ÍÀÌ´Ù.
values current date
1
----------
05/30/2003
1 record(s) selected.
¸»ÇÏÀÚ¸é À̰ÍÀº MM/DD/YYYY Æ÷¸ËÀÌ´Ù.
ÀÌ Æ÷¸ËÀ» º¯°æÇÏ·Á¸é db2 À¯Æ¿¸®Æ¼ ÆÐŰÁö Ä÷º¼ÇÀ» ´Ù¸¥ ³¯Â¥ Æ÷¸ËÀ¸·Î ¹ÙÀεùÇÑ´Ù.
999. Æ÷¸Ë Á¾·ù
DEF ¿µ¿ª ÄÚµå¿Í °ü·ÃµÈ ³¯Â¥ Æ÷¸Ë°ú ½Ã°£ Æ÷¸ËÀ» »ç¿ë.
EUR IBM À¯·´ Ç¥ÁØÀÇ ³¯Â¥¿Í ½Ã°£ Æ÷¸ËÀ» »ç¿ëÇÔ.
ISO International Standards OrganizationÀÇ ³¯Â¥¿Í ½Ã°£ Æ÷¸ËÀ» »ç¿ë.
JIS Japanese Industrial StandardÀÇ Æ÷¸Ë »ç¿ë.
LOC ÇØ´ç µ¥ÀÌÅͺ£À̽ºÀÇ ¿µ¿ª ÄÚµå¿Í °ü·ÃµÈ ·ÎÄà Çü½ÄÀÇ ³¯Â¥¿Í ½Ã°£ Æ÷¸ËÀ» »ç¿ëÇÔ.
USA IBM U.S. Ç¥ÁØÀ» »ç¿ëÇÔ.
999. ISO (YYYY-MM-DD)·Î µðÆúÆ® Æ÷¸ËÀ» º¯°æÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
1.¸í·ÉÇà¿¡¼, ÇöÀç µð·ºÅ丮¸¦ sqllib\bnd·Î º¯°æÇÑ´Ù.
¿¹:
On Windows: c:\program files\IBM\sqllib\bnd
On UNIX: /home/db2inst1/sqllib/bnd
SYSADM ±ÇÇÑÀ» °¡Áø »ç¿ëÀڷμ OS ½©¿¡¼ µ¥ÀÌÅͺ£À̽º·Î ¿¬°áÇÑ´Ù.
db2 connect to DBNAME
db2 bind @db2ubind.lst datetime ISO blocking all grant publ
999. DB2°¡ ·ÎÄà Æ÷¸ËÀ¸·Î ³¯Â¥¸¦ ³ªÅ¸³»´Â ¹æ½ÄÀ» ¾î¶»°Ô º¯°æÇÏ´ÂÁö¸¦ ¼³¸íÇÏ¿´´Ù.
ÇÏÁö¸¸ 'yyyymmdd'ó·³ Ä¿½ºÅÒ Æ÷¸ËÀ¸·Î Çϰí½Í´Ù¸é? ÃÖ¼±ÀÇ ¹æ¹ýÀº Ä¿½ºÅÒ Æ÷¸ËÆÃ ÇÔ¼ö¸¦ ´Ù½Ã ÀÛ¼ºÇÏ´Â °ÍÀÌ´Ù.
UDF:
create function ts_fmt(TS timestamp, fmt varchar(20))
returns varchar(50)
return
with tmp (dd,mm,yyyy,hh,mi,ss,nnnnnn) as
(
select substr( digits (day(TS)),9),
substr( digits (month(TS)),9) ,
rtrim(char(year(TS))) ,
substr( digits (hour(TS)),9),
substr( digits (minute(TS)),9),
substr( digits (second(TS)),9),
rtrim(char(microsecond(TS)))
from sysibm.sysdummy1
)
select case fmt
when 'yyyymmdd' then yyyy || mm || dd
when 'mm/dd/yyyy' then mm || '/' || dd || '/' || yyyy
when 'yyyy/dd/mm hh:mi:ss' then yyyy || '/' || mm || '/' || dd || ' ' || hh || ':' || mi || ':' || ss
when 'nnnnnn' then nnnnnn
else 'date format ' || coalesce(fmt,' <null> ') || ' not recognized.'
end
from tmp
</null>
ÀÌ ÇÔ¼ö ÄÚµå´Â º¹ÀâÇØº¸ÀδÙ. ÇÏÁö¸¸ ÀÚ¼¼È÷ »ìÆìº¸¸é ¸Å¿ì ´Ü¼øÇϸ鼵µ ÁÁÀº ÄÚµåÀÓÀ» ¾Ë ¼ö ÀÖ´Ù.
¿ì¼±, common table expression (CTE)¸¦ »ç¿ëÇÏ¿© ŸÀÓ½ºÅÆÇÁ(ù ¹øÂ° ÀÔ·Â ¸Å°³º¯¼ö)¸¦ °³º° ÄÄÆ÷³ÍÆ®¿¡¼ ºÐ¸®ÇÑ´Ù.
±×·± ´ÙÀ½, Á¦°øµÈ Æ÷¸Ë(µÎ ¹øÂ° ÀÔ·Â ¸Å°³º¯¼ö)À» °Ë»çÇÏ°í ¿äûµÈ Æ÷¸Ë°ú ºÎºÐÀ» »ç¿ëÇÏ¿© ŸÀÓ½ºÅÆÇÁ¸¦ ´Ù½Ã Á¤·ÄÇÑ´Ù.
ÀÌ ÇÔ¼ö´Â ¸Å¿ì À¯¿¬ÇÏ´Ù. ¶Ç ´Ù¸¥ ÆÐÅÏÀ» Ãß°¡ÇÏ·Á¸é ¿øÇÏ´Â Æ÷¸Ë°ú ÇÔ²² WHEN ±¸¹®À» ºÙÀÌ¸é µÈ´Ù.
¿¹»óÇÏÁö ¸øÇß´ø ÆÐÅÏÀÌ ³ªÅ¸³µ´Ù¸é ¿¡·¯¸Þ½ÃÁö°¡ ¸®ÅÏµÈ °ÍÀÌ´Ù.
»ç¿ë ¿¹Á¦:
values ts_fmt(current timestamp,'yyyymmdd')
'20030818'
values ts_fmt(current timestamp,'asa')
'date format asa not recognized.'