第102回 Oracleのお勉強 DATE型, TO_CHAR, TRUNC

DATE型を取得

SQL> select to_date('2009/01/01', 'YYYY/MM/DD') from dual;

TO_DATE(
--------
09-01-01
SQL> select sysdate from dual;

SYSDATE
--------
09-05-30

このように、特にテーブルを指定する必要がないときは dual を fromに書く。
to_date()によりDATE型を作り出せる。

to_charで表示形式を変える

SQL> select to_char(to_date('2009/01/01', 'YYYY/MM/DD'), 'YYYY/MM/DD') from dual;

TO_CHAR(TO_DATE('200
--------------------
2009/01/01
SQL> select to_char(sysdate, 'YYYY/MM/DD') from dual;

TO_CHAR(SYSDATE,'YYY
--------------------
2009/05/30

このように to_charで表示形式を変えれる。

TRUNC

SQL> select trunc(sysdate, 'HH') from dual;

TRUNC(SY
--------
09-05-30

TRUNC()に日付を与えると、切り捨てることができる。


to_char と TRUNCの違いって?

to_charは文字列を返すけど、
TRUNCは同じ型を返してくれる。


to_char っていうのは
sprintf とか printf みたいなもの、
書式を与えると、その書式で返してくれるわけ。

SQL> select to_char(sysdate, 'YYYY/MM/DD DY') from dual;

TO_CHAR(SYSDATE,'YYYY/MM/DDDY'
------------------------------
2009/05/30

だから、こんな風に、曜日とかも出せる。