sql >> Databáze >  >> RDS >> PostgreSQL

postgresql date_trunc na libovolnou přesnost?

Neexistuje žádná funkce, kterou chcete, ale jak bylo řečeno na wiki postgresql, můžete si funkci definovat sami:

CREATE OR REPLACE FUNCTION round_time_10m(TIMESTAMP WITH TIME ZONE) 
RETURNS TIMESTAMP WITH TIME ZONE AS $$ 
  SELECT date_trunc('hour', $1) + INTERVAL '10 min' * ROUND(date_part('minute', $1) / 10.0) 
$$ LANGUAGE SQL;

Obecně zaokrouhlování na 2 minuty nahoru:

CREATE OR REPLACE FUNCTION round_time_nm(TIMESTAMP WITH TIME ZONE, INTEGER) 
RETURNS TIMESTAMP WITH TIME ZONE AS $$ 
  SELECT date_trunc('hour', $1) + ($2 || ' min')::INTERVAL * ROUND(date_part('minute', $1) / $2) 
$$ LANGUAGE SQL;


  1. Microsoft Access – základy

  2. Rails a PostgreSQL:Role postgres neexistuje

  3. zadáním správného uživatelského jména a hesla získáte ORA-01017:neplatné uživatelské jméno/heslo; přihlášení odepřeno

  4. Je možné spustit řetězec v MySQL?