Avatar billede andersasp Nybegynder
25. august 2004 - 09:06 Der er 5 kommentarer og
1 løsning

Sorter efter dato i SQL sætning

Hejsa eksperter!

Jeg skal have nogle data ud som er <= dagens dato.

Jeg vil meget gerne have den til at sortere med tal! dvs. dagens dato = 0 imorgen  = 1. jeg har denne kode som virker helt perfekt:

<%
strDateDiff = DateDiff("d" , now() , (clients.Fields.Item("Cstatusdate").Value) )
response.write strDateDiff
%>

Min nuværende sql sætning ser sådan ud! virker dog ikke:

= "SELECT * FROM clients where Cstatus <> '6' AND (" & DateDiff("d" , now() , &"Cstatusdate" & ))) & " <= '0' order by Cstatusdate ASC"
Avatar billede fennec Nybegynder
25. august 2004 - 09:26 #1
Hvis du vil gøre det på den måde skal det ske med Access DateDiff funktion.

"SELECT * FROM clients where Cstatus <> '6' AND DateDiff('d', date(), Cstatusdate) <= 0 order by Cstatusdate ASC"

Men hvorfor vil du gøre sådan? Dette virker på samme måde og tager mindre resusrer:
"SELECT * FROM clients where Cstatus <> '6' AND Date() <= Cstatusdate order by Cstatusdate ASC"
Avatar billede andersasp Nybegynder
25. august 2004 - 09:42 #2
Ok tak for hjælpen!  jeg har dog haft en hel del problemer med dato - især når en løsningen kommer fra et dansk styresystem til et engelsk.. - og fra en access til en MYSql - er der nogle lette løsninger på disse problemer??
Avatar billede eagleeye Praktikant
25. august 2004 - 09:44 #3
Bryg yyyy-mm-dd  som dato format via SQL. Så sætte feltet til DK/UL/US eller hvilken som helt anden dato format, så længe alle dato'er i SQL sætningen er i formatet yyyy-mm-dd.
Avatar billede eagleeye Praktikant
25. august 2004 - 09:49 #4
Når du udskriver fra et recordset kan du styre format med Session.LCID som kan igen kan sættes til det ønskede formar DK/UK/US eller andet.

du kan også altid bryge Year, Month og Day funktionerne til at formater til ens behov.

Eks med SQL

dato = "24-12-2004"
sdato = Year(dato) & "-" & Month(dato) & "-" & Day(dato)
SQL = INSERT INTO tabel (datokolonne) values (#" & sdato & "#)"
Avatar billede fennec Nybegynder
25. august 2004 - 09:52 #5
Et par gode råd så dato problemer minimeres:

1. Alle datoer gemmes i "Dato & klokkeslet" typen i databasen. Det er der rigtig mange der ikke gør.
2. Brug altid Access's dato funktioner hvis det kan lade sig gøre. F.eks hvis du skal finde noget i forhold til dags dato, så brug Access's date()/now() så passer formaterne.
3. Lav en ConvertToSqlDate() funktion, som bruges på alle datoer fra ASP. Så er der kun et sted du skal tilpasse formatet. Har smidt min med.

Function ConvertToSqlDate(FunkDato)
dim SQLYear,SQLMonth,SQLDay
  SQLYear = Year(FunkDato)
  SQLMonth = Month(FunkDato)
  SQLDay = Day(FunkDato)
  if SQLDay<10 then
    SQLDay = 0&SQLDay
  end if
  if SQLMonth<10 then
    SQLMonth = 0&SQLMonth
  end if
  ConvertToSqlDate = "#"&SQLMonth&"-"&SQLDay&"-"&SQLYear&"#"
End Function
Avatar billede andersasp Nybegynder
25. august 2004 - 09:55 #6
Tusinde tak for hjælpen begge to!  Jeg tror jeg er begyndt at forstå hvordan man bruger de forskellige datofunktioner!
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
Kurser inden for grundlæggende programmering

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