2016-04-07 9 views
1

Irgendwelche Ideen zum Aufrunden von SYSDATE.Aufrunden SYSDATE nur aber seine Stunde. SQL ORACLE

Zum Beispiel sysdate jetzt ist 11.31, und ich will es 12.00 abzurunden, aber ich erwarte, die ausgegeben werden nur 12, und wenn die sysdate 11.29 ist, ist der Ausgang 11.

Dank

+0

so wollen Sie auf die nächste Stunde zu runden - nur wenn Sie 30 Minuten sind? – Hogan

+0

@Hogan das ist richtig. Runde nach der 30. Minute –

Antwort

1
ROUND((SYSDATE-TRUNC(SYSDATE))*24) 

Erläuterung: TRUNC ohne 2. Parameter macht den 00.00.00 Zeit des aktuellen Datums. Durch Subtraktion erhalten wir die Differenz (in Tagen) und skalieren sie dann auf Stunden und Runden.

+0

es funktioniert. Vielen Dank. –

+0

@MarioAlexander 23:31 produziert 24 statt 00. – dcieslak

1

Verwenden ROUND Funktion und danach TO_CHAR.

select to_char(round(to_date('11:31','hh24:mi'), 'HH'), 'HH24') from dual 

-> 12 

select to_char(round(to_date('11:29','hh24:mi'), 'HH'), 'HH24') from dual 

-> 11