Avatar billede cronck Nybegynder
19. april 2012 - 11:17 Der er 1 kommentar og
1 løsning

Datetime bliver ikke parset korrekt

Hej,

Jeg har lavet nedestående SQL som "burde" selecte alle rækker som er ældre end i dag, kl. 07:30.

Det lader dog ikke til at "Send_dtm" bliver parset som et korrekt timestamp i MySQL, da min query ikke returnerer nogen rækker.
Erstatter jeg NOW() med f.eks. '2012-04-19 11:00' returnerer den heller ej noget.
Sætter jeg et 1-tal ind istedet for NOW(), returnerer den alle rækker.

Kan I hjælpe med at finde ud af hvordan jeg gør det rigtigt?

Her er min SQL:
SELECT NOW(),
      CASE
        WHEN Hour_vc = 7 THEN DATE_ADD(Dato_dt, INTERVAL 450 MINUTE)
        WHEN Hour_vc = 19 THEN DATE_ADD(Dato_dt, INTERVAL 1170 MINUTE)
      END AS "Send_dtm",
      rapport.*
FROM  rapport.overdragelse
  WHERE "Send_dtm" < NOW()
Avatar billede cronck Nybegynder
19. april 2012 - 12:48 #1
Tror jeg fandt ud af det.

Man kan åbenbart ikke bruge den genererede/fiktive værdi i sin where-clause. :)
Avatar billede MADOlsen Forsker
19. april 2012 - 13:19 #2
Har du fundet en anden måde at gøre det på?
Ellers burde noget i stil med nedenstående fungere (sidder ikke lige et sted hvor jeg kan komme til at checke syntax'en).

SELECT * FROM rapport.overdragelse
WHERE Date(oprettelsestidspunkt) < Date(Now())
OR ((Date(oprettelsestidspunkt) = Date(Now()))
and (Time(oprettelsestidspunkt) < Time('07:30:00')));
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester