SQL og NOW()?

Tags:    asp

Jeg er ved og lave en auktions hjemmeside lig med QXL.dk, men jeg er løbet ind i nogen problemer med SQL sætningen som skal sortere auktionerne efter kategori og om de er færdige.

Det er den sidst nævnte del jeg har problemer med, jeg kan simpelthen ikke få den til at sortere de færdige auktioner fra, så de ikke bliver vist.

Her er min SQL syntax:

Fold kodeboks ind/udKode 


PS "Slut_dato" er er sat ind når man opretter auktionen med Now().

//Nick

[Redigeret d. 17/05-04 21:17:31 af Nick H. Lauritsen]



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Jeg er ved og lave en auktions hjemmeside lig med QXL.dk, men jeg er løbet ind i nogen problemer med SQL sætningen som skal sortere auktionerne efter kategori og om de er færdige.

Det er den sidst nævnte del jeg har problemer med, jeg kan simpelthen ikke få den til at sortere de færdige auktioner fra, så de ikke bliver vist.

Her er min SQL syntax:

Fold kodeboks ind/udKode 


PS "Slut_dato" er er sat ind når man opretter auktionen med Now().

//Nick

[Redigeret d. 17/05-04 21:17:31 af Nick H. Lauritsen]

det er desværre ikke så simpelt at sammenligne to datoer... og man skal ikke bruge ' tegnet ved dato, det skal du til gengæld omkring dine kategorier! Du skal bruge DateDiff. din linie skal se sådan ud:

strSQL = "select * from Auktioner WHERE (Kategori = '" & Request.Querystring("kat") & "') AND (Underkategori = '" & Request.Querystring("id") & "') AND (DateDif(n,Slut_dato,Now())<0)"

kig den lige igennem, er ik 100% på at der ik mangler en parantes eller noget et sted

Må desværre skuffe dig Mark, for det Jacob skrev virkede faktisk :D Så vidt jeg kan se finder det du skriver hvor mange minuter der er mellem "slut_dato" og "Now()", og der efter siger det skal være mindre end nul :S

Men tak for forsøget :)


ja, men det han skriver med slut_dato > Now() kan man ikke! man kan ikke sammenligne på den måde i alle tilfælde, det kommer an på hvilket dato-format man bruger...

og ja, den får forskellen i minutter, det var bare for at få en forskel... du ka også få det i sekunder hvis du vil, men pointen er, at hvis datoen er overskredet (altså hvos forskellen i minutter er mindre end 0) så få du dem i dit record set.



Jeg mener mySql gerne vil have ' tegn ved TimeStamps... altså :

strSQL = "select* from Auktioner WHERE (Kategori = " & Request.Querystring("kat") & ") AND (Underkategori = " & Request.Querystring("id") & ") AND (Slut_dato > '" & Now() & "')"

Hvordan ser datoen ud i databasen og hvilken benytter du... ??

Det mest optimale, hvis du eksempelvis brugte mySql at sætte datoer som TimeStamp.. også benytter sql til at indsætte datoen... det er mest optimalt at søge med...

Altså :

strSQL = "select* from Auktioner WHERE (Kategori = " & Request.Querystring("kat") & ") AND (Underkategori = " & Request.Querystring("id") & ") AND (Slut_dato > Now())"

Men denne virker ikke til alle

/Jokke

[Redigeret d. 17/05-04 22:36:27 af Jacob Jensen]



Jeg er ved og lave en auktions hjemmeside lig med QXL.dk, men jeg er løbet ind i nogen problemer med SQL sætningen som skal sortere auktionerne efter kategori og om de er færdige.

Det er den sidst nævnte del jeg har problemer med, jeg kan simpelthen ikke få den til at sortere de færdige auktioner fra, så de ikke bliver vist.

Her er min SQL syntax:

Fold kodeboks ind/udKode 


PS "Slut_dato" er er sat ind når man opretter auktionen med Now().

//Nick

[Redigeret d. 17/05-04 21:17:31 af Nick H. Lauritsen]


det er desværre ikke så simpelt at sammenligne to datoer... og man skal ikke bruge ' tegnet ved dato, det skal du til gengæld omkring dine kategorier! Du skal bruge DateDiff. din linie skal se sådan ud:

strSQL = "select * from Auktioner WHERE (Kategori = '" & Request.Querystring("kat") & "') AND (Underkategori = '" & Request.Querystring("id") & "') AND (DateDif(n,Slut_dato,Now())<0)"

kig den lige igennem, er ik 100% på at der ik mangler en parantes eller noget et sted



Jeg er ved og lave en auktions hjemmeside lig med QXL.dk, men jeg er løbet ind i nogen problemer med SQL sætningen som skal sortere auktionerne efter kategori og om de er færdige.

Det er den sidst nævnte del jeg har problemer med, jeg kan simpelthen ikke få den til at sortere de færdige auktioner fra, så de ikke bliver vist.

Her er min SQL syntax:

Fold kodeboks ind/udKode 


PS "Slut_dato" er er sat ind når man opretter auktionen med Now().

//Nick

[Redigeret d. 17/05-04 21:17:31 af Nick H. Lauritsen]

det er desværre ikke så simpelt at sammenligne to datoer... og man skal ikke bruge ' tegnet ved dato, det skal du til gengæld omkring dine kategorier! Du skal bruge DateDiff. din linie skal se sådan ud:

strSQL = "select * from Auktioner WHERE (Kategori = '" & Request.Querystring("kat") & "') AND (Underkategori = '" & Request.Querystring("id") & "') AND (DateDif(n,Slut_dato,Now())<0)"

kig den lige igennem, er ik 100% på at der ik mangler en parantes eller noget et sted


Må desværre skuffe dig Mark, for det Jacob skrev virkede faktisk :D Så vidt jeg kan se finder det du skriver hvor mange minuter der er mellem "slut_dato" og "Now()", og der efter siger det skal være mindre end nul :S

Men tak for forsøget :)



t