PL SQL Data Types Oracle PLSQL Tutorial

ROUND, typically applied to numbers, also work with dates and timestamps.
ROUND rounds the date to a specified point.

v_dt:= ROUND (DATE|TIMESTAMP|INTERVAL value[,PRECISION]);
Rather than numeric precision, here you use date format masks.
For example, 'YYYY' truncates the date to years, and 'MM' to a month.
If you don't specify any precision, the default is day ('DD').
You can't specify a combination of format masks.
Only one can be specified at a time.

SQL> declare
  2      v_dt DATE;
  3      v_form_tx VARCHAR2(25):='YYYY-MM-DD HH24:MI:SS';
  4  begin
  5      v_dt:=round(sysdate,'HH');
  6      DBMS_OUTPUT.put_line(to_char(v_dt,v_form_tx));
  7  end;
  8  /
2007-06-09 21:00:00
PL/SQL procedure successfully completed.
SQL>