Operacje na datach przy wykorzystaniu date_trunc


<p class="mce_ws_kod">select czas, date_trunc('day', czas)+'15:59:12' as czas2 from czas limit 1;
UPDATE czas set czas = date_trunc('day', czas)+'15:59:12' WHERE wt_id = 3850;

„2008-11-07 15:58:37″;”2008-11-07 15:59:12”


<span class="mce_ws_kod">select
  czas, date_trunc('day', czas), date_trunc('day', timestamp '2010-08-11')
from
  czas_t
where
  date_trunc('day', czas) = date_trunc('day', timestamp '2010-08-11')</span>

„2010-08-11 07:37:46″;”2010-08-11 00:00:00″;”2010-08-11 00:00:00”
„2010-08-11 07:40:49″;”2010-08-11 00:00:00″;”2010-08-11 00:00:00”
„2010-08-11 08:04:42″;”2010-08-11 00:00:00″;”2010-08-11 00:00:00”
„2010-08-11 09:12:32″;”2010-08-11 00:00:00″;”2010-08-11 00:00:00”
„2010-08-11 08:55:52″;”2010-08-11 00:00:00″;”2010-08-11 00:00:00”
„2010-08-11 15:59:12″;”2010-08-11 00:00:00″;”2010-08-11 00:00:00”

Zapytanie o rekordy z dnia bieżącego + jeden dzień

select NOW()::date

„2010-04-23”

select t_date from table where t_date >= NOW()::date+’1 day’::interval order by t_date limit 3

„2010-04-24”
„2010-04-24”
„2010-04-24”

select t_date from table where t_date >= NOW()+’1 day’::interval order by t_date limit 3

„2010-04-25”
„2010-04-25”
„2010-04-25”

Zapytanie do bazy z wykorzystaniem funkcji NOW()

select * from table where t_add_date &lt; NOW()-'5 MONTH'::interval
select * from table where t_add_date &lt; NOW()+'5 MONTH'::interval
select * from table where t_add_date &lt; NOW()-'1 DAY'::interval
select * from table where t_add_date &lt; NOW()-'2 DAYS'::interval
select * from table where t_add_date &lt; NOW()-'1 DAY'::interval
select * from table where t_add_date &lt; NOW()-'5 MINUTES'::interval
select * from table where t_add_date &lt; NOW()-'3 HOURS'::interval