LibreOffice Version 25.8.7.3 (AARCH64) auf MacOS 26.5.2, HSQLDB Datenbank
Ich versuche Zeitangaben vom Typ “Timestamp” in Base auf 30 Minuten Intervalle zu runden. Leider wird bei der Methode, die ich bisher gefunden habe, aus dem “Timestamp” ein “Decimal”. Dadurch kann ich gerundete Zeitangaben und nicht zu rundende Angaben nicht mehr in der gleichen Spalte speichern.
Ich habe bisher auch keine Methode gefunden die gerundete Zeit wieder in einen “Timestamp” zu konvertieren.
Eine einfache Methode aus den nicht zu rundenden Angaben ebenfalls "Decimal"s zu machen wäre eine Notlösung.
Für die weitere Verarbeitung und die Fehlersuche wären aber eine Spalte und “Timestamp” Werte sehr hilfreich.
Zum Nachbauen des Problems kann man so eine Tabelle erstellen und vorbelegen:
create table "T1" ( "TS" Timestamp);
insert into "T1" Values ( '2026-03-01 16:05' );
Meine bisherige Version der Abfrage mit Runden sieht so aus, funktioniert aber nicht:
SELECT CASE WHEN MINUTE( "TS" ) = '30'
THEN "TS"
ELSE DATEDIFF( 'dd', '1899-12-30', "TS" ) +
HOUR( "TS" ) / 24.0000000000 +
CEILING( MINUTE( "TS" ) / 30.00 ) / 48.0000000000 END
FROM "T1"
Der then und der else Zweig liefern unterschiedliche Zahlenformate. Setzt man im then-Zweig als Ausgabewert einfach die Zahl 1, wird die Abfrage akzeptiert.
Natürlich müsste man auch auf den Minutenwert Null testen und nicht nur auf 30, aber das Problem ist auch so nachvollziehbar.




