current_timestamp と同じもので、伝統的なPostgreSQL関数です。
Fig.1-4: now の使用例
sample=# select now(); |
now |
------------------------------- |
2008-11-11 11:22:10.104132+09 |
(1 行) |
date_trunc
date_trunc() 関数は、タイムスタンプを指定された精度で切り捨てます。
例では時間で切り捨てていますが他にも単位を選択することは可能です。
Table.1-1: 指定可能な date_trunc の単位
year |
年 |
month |
月 |
day |
日 |
dow |
曜日(0 日曜) |
hour |
時 |
minute |
分 |
second |
秒 |
week |
週 |
quarter |
四半期 |
doy |
年間通算日(うるう年は 366 日まで) |
epoch |
1970.01.01 からの通算秒 |
Fig.1-5: date_trunc の使用例
sample=# select date_trunc('hour', current_timestamp); |
date_trunc |
------------------------ |
2008-11-11 13:00:00+09 |
(1 行) |
PostgreSQL では、add_months() は使えない。
Fig.1-6: 日付加算の使用例
sample=# select current_date + 5; |
?column? |
------------ |
2008-11-16 |
(1 行) |
PostgreSQL では、months_between() も使えない。
Fig.1-7: 日付差分の使用例
sample=# select current_timestamp - to_timestamp('2008.11.01 00:00:00', 'yyyy.mm.dd hh24:mi:ss'); |
?column? |
------------------------- |
10 days 13:43:26.069516 |
(1 行) |
age
引数間の減算結果を表示します。
これは、年齢や勤続年数などを取得するのによく使います。
Fig.1-8: age の使用例
sample=# select age(current_timestamp, '1980-04-26'); |
age |
---------------------------------------- |
28 years 6 mons 15 days 13:53:42.528456 |
(1 行) |
to_date
to_date() 関数は、文字日付を日付型に変換します。
Fig.1-9: to_date の使用例
sample=# select to_date('20081110', 'YYYYMMDD'); |
to_date |
------------ |
2008-11-10 |
(1 行) |
to_timestamp
to_timestamp() 関数は、時間も含みます(to_time はない)。
Fig.1-10: to_timestamp の使用例
sample=# select to_timestamp('2008.11.10 14:16:00', 'YYYY.MM.DD HH24:MI:SS'); |
to_timestamp |
------------------------ |
2008-11-10 14:16:00+09 |
(1 行) |
to_char
to_char() 関数は、任意のフォーマットの文字列に変換します。
Fig.1-11: to_char の使用例
sample=# select to_char(now(), 'mm dd hh24:mi:ss yyyy'); |
to_char |
--------------------- |
11 11 11:24:13 2008 |
(1 行) |