• 28.04.2024, 02:56
  • Registrieren
  • Anmelden
  • Du bist nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies dein erster Besuch auf dieser Seite ist, lese dir bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

SQL-Uhrzeitproblem

Donnerstag, 18. August 2011, 09:23

Mahlzeit!

Ausgangsszenario:
Ich habe eine Tabelle mit folgenden Datensätzen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
A                       B     C
1754-01-01 16:55:15.340 69982 19639
1754-01-01 17:02:09.310 69575 19647
1754-01-01 17:03:44.187 70021 19648
1754-01-01 17:27:53.080 70065 19678
1754-01-01 17:30:42.190 70075 19679
1754-01-01 17:36:25.563 70094 19688
1754-01-01 17:43:18.750 70168 19703
1754-01-01 17:51:40.470 70209 19730
1754-01-01 18:09:39.570 70256 19749
1754-01-01 18:14:23.930 70257 19751
1754-01-01 18:48:24.367 70318 19760
1754-01-01 19:00:23.117 70334 19766
1754-01-01 19:18:20.243 70346 19770


In einer View würde ich gerne eine zusätzliche berechnete Spalte einfügen, die die Uhrzeit aus Spalte A auf die vorhergehende halbe Stunde abrundet. Das gewünschte Ergebnis ist also folgendes:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
A                       B     C     D
1754-01-01 16:55:15.340 69982 19639 16:30
1754-01-01 17:02:09.310 69575 19647 17:00
1754-01-01 17:03:44.187 70021 19648 17:00
1754-01-01 17:27:53.080 70065 19678 17:00
1754-01-01 17:30:42.190 70075 19679 17:30
1754-01-01 17:36:25.563 70094 19688 17:30
1754-01-01 17:43:18.750 70168 19703 17:30
1754-01-01 17:51:40.470 70209 19730 17:30
1754-01-01 18:09:39.570 70256 19749 18:00
1754-01-01 18:14:23.930 70257 19751 18:00
1754-01-01 18:48:24.367 70318 19760 18:30
1754-01-01 19:00:23.117 70334 19766 19:00
1754-01-01 19:18:20.243 70346 19770 19:00


Irgendwie habe ich da gerade ein Brett vorm Kopf... Kann mir jemand weiterhelfen?

Donnerstag, 18. August 2011, 21:49

Fixe Idee:

MySQL-Abfrage(n)

1
SELECT DATE_SUB(TO_SECONDS('2011-08-18 21:41:37'), INTERVAL MOD(TO_SECONDS('2011-08-18 21:41:37'), 1800) UNIT)

Wäre schön, den Sekundenwert nur einmal berechnen zu müssen, aber ich bin grad nicht im Bilde, ob und wie das mit SQL geht.

MySQL:
- Modulo
- Datumsfunktionen

Freitag, 19. August 2011, 12:40

Danke, ich habe es in der Zwischenzeit aber auf die hässliche Art und Weise mit einem CASE gelöst. Trotzdem sollte man meinen, das sowas eleganter funktioniert...