14. december 2007 - 03:29Der er
7 kommentarer og 1 løsning
Problem med dato-sammenligning dansk/engelsk format ASP/MySQL.
Når jeg i .ASP kører denne SQL på en tabel der har et timestamp-telt:
query_str = "SELECT * FROM tabel WHERE date(timestamp)=" & Date() & ";"
så burde den finde poster hvor timestamp-feltet indeholder en tidsstempling hvor datoen matcher datoen i dag (dags dato). Men problemet er at ASP Date()-kommandoen returnerer "14-12-2007", mens MYSQL Date() returnerer "2007-12-14"!
For mig at se er det MySql der er gal på den eftersom vi lever i Danmark og at serveren er sat op til dansk locale!
Jeg har prøvet med forskellige formateringer, men uden held so far. Har også prøvet at ændre variablen date_format i MySql Front til %d-%m-%Y, men den ændrer hele tiden tilbage til %Y-%m-%d!!
Er der nogen der kan forklare dette? Og/eller har et løsningsforslag?
ja, det var også min "sidste" udvej, men der findes altså ikke en måde så MYSQL kan vise/returnere rigtigt format???
Jeg har altid fået at vide at MySql var sådan en avanceret database, men synes efterhånden at der er ALT for meget bøvl med at anvende mysql ifht. alle andre databaser.
Nå, men ja jeg prøvede det du skrev, men det var heller ikke nok. Det viste sig at det skal også konverteres til en streng INDEN sammenligningen! Det er altså ikke nok at det er en dato, konverteret til en dato etc.
Men jeg kan undre mig MEGET over 2 ting.. 1) Hvorfor har mySql så en "VARIABEL" kaldet "dato_format" som man ovenikøbet ser ud til at man kan/ændrer, men tager bare ingen effekt, for når man går ind i dialogboksen igen, så har den ændret det tilbage. Når noget ikke kan ændres, så hedder det en KONSTANT! Og så skal man IKKE give mulighed for at det kan ændres.. hmm mystisk.. 2) Kan også undres over at MySql er blevet så populært som det er, for det er virkelig primitivt i mange henseender i sammenligning med stort set alle andre databaser som MS Access, Paradox, MS Sql, Progress osv osv. Men det MÅ jo ganske enkelt være... PRISEN! *smiler*
SELECT * FROM Tabel WHERE year(Tabel.TimeStamp) = year('2007-12-15') AND month(Tabel.TimeStamp) = month('2007-12-15') AND day(Tabel.TimeStamp) = day('2007-12-15')
Men flg virker IKKE:
SELECT * FROM logfil WHERE date(logfil.TimeStamp) = '2007-12-15'
OM jeg begriber det!
Jeg har endda prøvet at køre en reparer på tabellen!
Synes godt om
Ny brugerNybegynder
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.