Pit: mysql: Query findet Datensatz nicht

Hallo,

ich habe einen Datensatz in der Tabelle, der meiner Meinung nach gefunden werden sollte, es ist aber nicht so. Hier die Query und der Datensatz:

SELECT t.ID
FROM termine_termine t
WHERE UNIX_TIMESTAMP(t.Erstelldatum) > 1515681952
AND t.Start <= STR_TO_DATE('1517180400','%y-%m-%d') AND t.End >= STR_TO_DATE('1515366000','%y-%m-%d')

Datensatz:

t.Start: 2018-01-12 00:00:00 	
t.End: 2018-01-12 23:59:00 						
Erstelldatum: 2018-01-11 15:52:07

Hilfe:

STR_TO_DATE('1517180400','%y-%m-%d'): 29.01.2018 - 00:00:00
STR_TO_DATE('1515366000','%y-%m-%d'): 08.01.2018 - 00:00:00
1515681952 = (11.01.2018 - 15:45:52)

Woran liegt das?

Pit

  1. Tach!

    SELECT t.ID
    FROM termine_termine t
    WHERE UNIX_TIMESTAMP(t.Erstelldatum) > 1515681952
    AND t.Start <= STR_TO_DATE('1517180400','%y-%m-%d') AND t.End >= STR_TO_DATE('1515366000','%y-%m-%d')
    

    Sieht gruselig aus. Sind das DATETIME-Felder in der Datenbank? Wenn nein, warum nicht? Und was ist es dann?

    STR_TO_DATE('1515366000','%y-%m-%d')

    Der Wert 1515366000 ist nicht im Format Jahr-Monat-Tag, so wie du es im zweiten Parameter angegeben hast.

    Und man kann auch mit MySQL debuggen. SELECT STR_TO_DATE('1515366000','%y-%m-%d') würde dir sicher zeigen, dass da was anderes rauskommt als du dir vorgestellt hast.

    dedlfix.

    1. Hi dedlfix,

      Sieht gruselig aus. Sind das DATETIME-Felder in der Datenbank? Wenn nein, warum nicht? Und was ist es dann?

      Klar sind es DATETIME-Felder.

      STR_TO_DATE('1515366000','%y-%m-%d')

      Der Wert 1515366000 ist nicht im Format Jahr-Monat-Tag, so wie du es im zweiten Parameter angegeben hast.

      Ach, Käse. Bin mit der Funktion STR_TO_DATE durcheinandergekommen, ich dachte, sie erwartet einen Unixtimestring, um ihn in ein Date umzuwandeln. Halt String to date, wie sie ja auch heißt.

      Und man kann auch mit MySQL debuggen. SELECT STR_TO_DATE('1515366000','%y-%m-%d') würde dir sicher zeigen, dass da was anderes rauskommt als du dir vorgestellt hast.

      Klar, hätt ich mahcen sollen. Danke für die Hilfe, Pit

      1. Jetzt läufts… Pit