Oracle PLSQL tronquer datetime à des heures spécifiques

J'ai un Oracle PLSQL code générant une liste de datetime timbres et je tiens à les tronquer les heures de 7 heures et 7 h le matin plutôt que le début de la journée.

Par exemple:

  • 01/03/2013 0700 devient 01/03/2013 0700
  • 01/03/2013 1235 devient 01/03/2013 0700
  • 01/03/2013 1932 devient 01/03/2013 1900
  • 02/03/2013 0612 devient 01/03/2013 1900

Mon code est actuellement:

 SELECT  TRUNC(TRUNC(SYSDATE,'hh') + 1/24 - (ROWNUM) / 24, 'dd')  as shift_date
 FROM widsys.times
 ORDER BY SYSDATE

Grâce

OriginalL'auteur user2793907 | 2013-09-19