1Danke
ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
460
460
EMPFEHLEN
-
Hallo zusammen
Ich habe hier die Anforderung, Datensätze mit einem Datumsrange abzufragen.
Also zum Beispiel: Gib mir alle Datensätze vom 01.01.2012 12:00 bis zum 02.01.2012 12:00.
Das Problem ist jetzt, dass die Tabelle das Datum in zwei Feldern speichert, nämlich createDate und createTime (also z.B. '2012-01-01' und '12:00:00')
Jetzt habe ich natürlich das Problem, wenn ich
createTime >= '12:00:00' and
createTime <= '12:00:00' and
createDate >= '2012-01-01' and
createDate <= '2012-01-02'
abfrage, dass nur die Datensätze zurückkommen, die um 12:00:00 angelegt wurden.
Ich bin jetzt hingegangen und habe das ganze "zusammengecastet" (IBM DB2 Dialect):
CONCAT(cast(createDate as VARCHAR(10)), cast(createTime as VARCHAR(8))) >= ?
Den Wert schnippsle ich mir dann in der Applikation, welche die Abfrage startet, zusammen; also quasi
eingegebenesDatum.parse(dd.MM.yyyyHH:mm:ss)
Zusätzlich habe ich trotzdem noch den createDate abgefragt, gefühlt ist's dann ein bisschen schneller.
Ich könnte mir höchstens noch vorstellen, dass ich das ganze in einen UTC-Long caste, anstatt in einen VARCHAR, damit das Casten und vergleichen schneller geht, aber bevor ich da noch mehr herumbastle, würde ich doch gern wissen, ob ich nicht komplett auf dem Holzweg bin? Ich kann mir vorstellen, dass es eine elegantere Lösung gibt, was meint ihr?
Besten Dank und Gruss
slowy
-
Annahme: DB ist MySQL
Du kannst sie mit TIMESTAMP() zusammensetzen
Code sql:1 2
WHERE TIMESTAMP(createDate, createTime) BETWEEN TIMESTAMP('2012-01-01 12:00:00') AND TIMESTAMP('2012-01-02 12:00:00')
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Besten Dank, Yaslaw.
Funktioniert auch unter DB2.
Danke für die schnelle Antwort
slowy
Ähnliche Themen
-
SQL/Oracle date/time -> suche Date
Von Goldman im Forum .NET CaféAntworten: 0Letzter Beitrag: 20.05.09, 15:28 -
[MS ACCESS] Abfrage leere Datums-Felder
Von soyo im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 12.12.07, 09:22 -
MySQL-Abfrage über zwei Tabellen und zwei Zeilen
Von bnc-bang im Forum Relationale DatenbanksystemeAntworten: 7Letzter Beitrag: 13.04.07, 20:43 -
MySQL-Abfrage über zwei Tabellen und zwei Zeilen
Von bnc-bang im Forum PHPAntworten: 3Letzter Beitrag: 12.04.07, 18:19 -
die Datums zwischen zwei Datums in array Schreiben
Von djnelly im Forum PHPAntworten: 3Letzter Beitrag: 19.09.04, 14:48





Zitieren

Login





