sql >> Database teknologi >  >> RDS >> Oracle

Oracle får 1 time tilbage dato

Noget som:

select trunc(your_date, 'hh') - number_of_hours_to_go_back/24 start_dt,
       trunc(your_date, 'hh') end_dt
from   dual;

hvis du har brug for det i en SQL-sætning, eller:

declare
  v_date date := to_date('10/12/2016 10:15:23', 'dd/mm/yyyy hh24:mi:ss');
  v_start_dt date;
  v_end_dt date;
  v_num_hours_back integer;
begin
  v_start_dt := trunc(v_date, 'hh') - v_num_hours_back/24;
  v_end_dt := trunc(v_date, 'hh');
end;
/

hvis du har brug for det i PL/SQL (for at spare unødvendigt kontekstskift mellem SQL og PL/SQL).



  1. Mærkeligt afrundingsproblem

  2. Venstre og højre forbinder ved hjælp af plus (+)-log på Oracle

  3. Kontroller, om rækken findes i databasen, før du indsætter

  4. Hvordan beregner man antallet af hop mellem kilden og destinationen?