sql >> Database teknologi >  >> RDS >> PostgreSQL

postgresql date_trunc til vilkårlig præcision?

Der er ingen funktion du ønsker, men som sagt i postgresql wiki kan du definere funktion for dig selv:

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;

Generelt runder op til $2 minutter:

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. Sådan fungerer Asinh() i PostgreSQL

  2. Oracle PL/SQL - Hæv brugerdefineret undtagelse med tilpasset SQLERRM

  3. Er id-kolonneposition i Postgresql vigtig?

  4. Hvordan opretter jeg en Oracle-tabel med indlejrede tabeller af objekttyper?