udtrække dato

Tags:    databaser



jeg har et tekstfelt i min database indeholdene en dato i formatet
yyyy-mm-dd

den vil jeg gerne udtrække og sammenligne med et timestamp.

eks "select * from db where dato_1 >=" . time($tid) ;

men hvordan får jeg min dato i db konverteret til et timestamp?

har kigget lidt på UNIX_TIMESTAMP men kunne ikke finde syntaxen til at få det til at virke.



~Life is to short for windows~



4 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Jeg tror ikke helt at du kan gøre det på den ønskede måde.
Siden datoen i din database ikke bliver gemt som et heltal, men derimod en string variabel, (yyyy-mm-dd... ) så kan du ikke lige se om det er større eller mindre end den anden dato.

Det tror du skal formatere dit indhold i databasen under udtrækket, og derefter tjekke det.

Dvs. at du skal konvertere dit indhold til en int eller long, og derefter finde den nuværende dato, og gøre det samme med den. Derefter kan du sammen ligne dem.

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



Jeg tror ikke helt at du kan gøre det på den ønskede måde.
Siden datoen i din database ikke bliver gemt som et heltal, men derimod en string variabel, (yyyy-mm-dd... ) så kan du ikke lige se om det er større eller mindre end den anden dato.

Det tror du skal formatere dit indhold i databasen under udtrækket, og derefter tjekke det.

Dvs. at du skal konvertere dit indhold til en int eller long, og derefter finde den nuværende dato, og gøre det samme med den. Derefter kan du sammen ligne dem.

-------------------------------

Hilsen Jimmi Westeberg
http://www.westsworld.dk




ja det var også det jeg kom frem til.
min statement ser lige nu sålesed ud.

"SELECT * FROM db WHERE UNIX_TIMESTAMP('dato_1') >= ". time($dato_1) ;

så burde begge datore både den i databasen og den i min php variabel blive lavet om, men det er kun den i php der bliver til sekunder siden 1970.


~Life is to short for windows~



Jeg tror ikke helt at du kan gøre det på den ønskede måde.
Siden datoen i din database ikke bliver gemt som et heltal, men derimod en string variabel, (yyyy-mm-dd... ) så kan du ikke lige se om det er større eller mindre end den anden dato.

Det tror du skal formatere dit indhold i databasen under udtrækket, og derefter tjekke det.

Dvs. at du skal konvertere dit indhold til en int eller long, og derefter finde den nuværende dato, og gøre det samme med den. Derefter kan du sammen ligne dem.

-------------------------------

Hilsen Jimmi Westeberg
http://www.westsworld.dk



ja det var også det jeg kom frem til.
min statement ser lige nu sålesed ud.

"SELECT * FROM db WHERE UNIX_TIMESTAMP('dato_1') >= ". time($dato_1) ;

så burde begge datore både den i databasen og den i min php variabel blive lavet om, men det er kun den i php der bliver til sekunder siden 1970.


~Life is to short for windows~




kan se at UNIX_TIMESTAMP vireker. men den tæller anderledes en php´s time() funktion?

UNIX_TIMESTAMP('2004-02-09') giver 1076281200
men php´s time(2004-02-09); giver 1086348842

???

hvis jeg så køre begge timestamps igennem php´s date funktion får jeg følgende


echo date("j F Y",1076281200); = 9 February 2004

echo date("j F Y",1086343170); = 4 June 2004

altså ser den forskellitg?

på mysql.com står der at UNIX_TIMESTAMP kører epoc time altså 1-1 1970
og det mener jeg også at php´s time gør.

HVORFOR GØR DET SÅ SÅDAN???....

hvorfor tæller min time() forkert?



[Redigeret d. 04/06-04 13:40:58 af carsten andersen]




hehe,, kan se at det er fordi at time() kun kan give timestamp for lige nu.

så hele spørgsmålet ændres.. til hvordan laver man et timestamp i php ud fra en dato.?


lukker tråden og flytter den til php forum



t