[ ÀÏÀÚ, ½Ã°£, ºÐ  °ü·Ã ÇÔ¼ö]

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.'