Avatar billede l_otto Nybegynder
22. februar 2007 - 11:12 Der er 32 kommentarer og
1 løsning

select where dags dato = idag

jeg vil gerne tælle alle vagter i dag..

jeg har et felt der hedder 'herlev' hvor der står datoen for vagten = 22-2-2007

<%strSQL = "SELECT COUNT(*) AS total FROM bestilling where herlev = 'DAGSDATO'"
Set rs = DataConn.Execute(strSQL)
response.write RS("total")
%>

hvordan får jeg den DAGSdato ind så den viser hvormange vagter der er idag ?
Avatar billede kalp Novice
22. februar 2007 - 11:15 #1
skriv bare now()
Avatar billede kalp Novice
22. februar 2007 - 11:16 #2
<%strSQL = "SELECT COUNT(*) AS total FROM bestilling where herlev = now() "
Avatar billede l_otto Nybegynder
22. februar 2007 - 11:26 #3
<%strSQL = "SELECT COUNT(*) AS total FROM bestilling where herlev = now() "
Set rs = DataConn.Execute(strSQL)
response.write RS("total")
%>

men den viser nul ?

og jeg har oprettet en vagt
herlev = 22-2-2007
Avatar billede thesurfer Nybegynder
22. februar 2007 - 11:29 #4
Det er fordi den tager "dato og tidspunkt" og sammenligner det med "dato"..

Brug date() i stedet.. enten i SQL'en eller i ASP..
Avatar billede l_otto Nybegynder
22. februar 2007 - 11:33 #5
nu vil den ikke vise noget laver bare fejl

<%strSQL = "SELECT COUNT(*) AS total FROM bestilling where herlev = date() "
Set rs = DataConn.Execute(strSQL)
response.write RS("total")
%>
Avatar billede kalp Novice
22. februar 2007 - 11:36 #6
der skal også # # rundt om når det er access database.
Avatar billede l_otto Nybegynder
22. februar 2007 - 11:40 #7
det er mysql
Avatar billede thesurfer Nybegynder
22. februar 2007 - 11:52 #8
Hvilken type er feltet "herlev" i din database?
Avatar billede l_otto Nybegynder
22. februar 2007 - 11:59 #9
varchar
Avatar billede thesurfer Nybegynder
22. februar 2007 - 12:00 #10
varchar er ikke en dato (så vidt jeg kan huske)..

Prøv med: where herlev = '" & date() & "'"
Avatar billede thesurfer Nybegynder
22. februar 2007 - 12:01 #11
Du skal vist også tænkte over, hvilket format din dato står på..

Den engelsk/amerikanske er forskellige fra den danske..

Kig i din database..

Hvordan står det der?
Avatar billede thesurfer Nybegynder
22. februar 2007 - 12:13 #12
Ifølge dit spørgsmål: vagten = 22-2-2007

Prøv med:

where herlev = '" & month(date()) & "-" & day(date()) & "-" & year(date()) & "'"
Avatar billede thesurfer Nybegynder
22. februar 2007 - 12:15 #13
For at gøre det mere overskueligt:

dim maaned, dag, aar, dato

maaned = month(date)
dag = day(date)
aar = year(date)

dato = maaned & "-" & dag & "-" & aar


...

Din sql slutter med: where herlev = '" & dato & "'"
Avatar billede l_otto Nybegynder
22. februar 2007 - 12:27 #14
<%dim maaned, dag, aar, dato

maaned = month(date)
dag = day(date)
aar = year(date)

dato = maaned & "-" & dag & "-" & aar
%>
Vagter i dag: <%strSQL = "SELECT COUNT(*) AS total FROM bestilling where herlev = '" & dato & "'"
Set rs = DataConn.Execute(strSQL)
response.write RS("total")
%>

stadig nul
Avatar billede kalp Novice
22. februar 2007 - 12:27 #15
thesurfer >> har mysql ikke denne function ? str_to_date()
Avatar billede thesurfer Nybegynder
22. februar 2007 - 12:43 #16
l_otto> Check værdierne:

dim maaned, dag, aar, dato

maaned = month(date)
dag = day(date)
aar = year(date)

response.write "NuDato: " & dato
response.end ' STOPPER AFVIKLINGEN AF ASP!

1) Hvad står der så? "NuDato: Et-eller-andet-her"

2) Hvad står der i din database under feltet "herlev"?
`

qawi> Det ved jeg ikke :-)
Det ser den ud til at have: http://www.google.com/search?q=str_to_date()

Men det hjælper nok ikke ret meget, når feltet i databasen er af typen tekst..
Så skal man konverterer begge felter til dato, før sammenligningen..

Hvis man laver selve feltet om til dato, skal man huske korrekt format, dvs, engelsk/amerikansk og dansk.. ellers vil man få en fejl..
Avatar billede l_otto Nybegynder
22. februar 2007 - 12:45 #17
NuDato: 2-22-2007
Avatar billede l_otto Nybegynder
22. februar 2007 - 12:46 #18
ok derfor vi skal have vendt datoen hvordan gør vi det.. ?
Avatar billede thesurfer Nybegynder
22. februar 2007 - 12:47 #19
Hehe.. ikke særligt smart af mig.. at glemme dato-linien i forrige indlæg.. :-)

Sådan:

dim maaned, dag, aar, dato

maaned = month(date)
dag = day(date)
aar = year(date)

dato = dag & "-" & maaned & "-" & aar
Avatar billede l_otto Nybegynder
22. februar 2007 - 13:04 #20
sådan surfer kom med et svar og tak for kampen
Avatar billede thesurfer Nybegynder
22. februar 2007 - 13:06 #21
Det var så lidt :-)
Avatar billede l_otto Nybegynder
22. februar 2007 - 13:09 #22
er der en smart måde at lave det så jeg kan se en mdr frem..

for jeg booker jeg vagterne frem også.. altså

herlev = 24-02-2007 osv
Avatar billede thesurfer Nybegynder
22. februar 2007 - 13:14 #23
Hvis du skal *arbejde* med datoer, vil jeg anbefale at du laver feltet om til typen dato (vistnok "datetime" eller bare "date"), frem for "varchar" som er tekst..

Men:
Så skal du til at arbejde med formattet af datoen:
- inden du kan putte den i databasen
- når du skal sammenligne

Ellers får du en forkert dato..

Så kan det være at den tror, at "22" er måned og "2" er dag.. da der ikke er 22 måneder på et år, vil det naturligvis give en fejl.. :-)

Husk det, hvis du beslutter dig for at lave typen om..

- Takker for points
Avatar billede l_otto Nybegynder
22. februar 2007 - 13:22 #24
ok takker :-)
Avatar billede l_otto Nybegynder
25. februar 2007 - 13:25 #25
hmm så kom problemmet nu tror den at 03.03.2007 er mindre end 27.02.2007

hvordan kommer jeg uden om den..  jeg vil gerne vise denne her rigtigt

strSQL = "Select DISTINCT  herlev From bestilling where herlev >= '" & dato & "' and pris='1'"

men den kan ikke finde ud af hvilke datoer der er ældre end i dag...
Avatar billede thesurfer Nybegynder
26. februar 2007 - 21:36 #26
Som jeg skrev i 22/02-2007 13:14:03:

---

Hvis du skal *arbejde* med datoer, vil jeg anbefale at du laver feltet om til typen dato (vistnok "datetime" eller bare "date"), frem for "varchar" som er tekst..

---

Du er ved at "arbejde" med datoer, da du er ved at sammenligne dem..

og det skal lige siges, at "03" jo er mindre end "27".. :-)
Avatar billede l_otto Nybegynder
27. februar 2007 - 10:02 #27
ja det er også den konklution jeg er kommet til, men hvis nu jeg kunne springe over hvor gærdet er lavest
Avatar billede thesurfer Nybegynder
27. februar 2007 - 10:25 #28
Det er ikke altid bedst at gøre det.. :-)

Jeg tror at man kan bruge det her:

http://www.windowsitpro.com/Article/ArticleID/15256/15256.html?Ad=1

Jeg har ikke testet det..
Avatar billede thesurfer Nybegynder
27. februar 2007 - 10:27 #29
Ellers er der en søgning her: http://www.google.com/search?q=sql+convert+date
Avatar billede kalp Novice
27. februar 2007 - 10:30 #30
thesurfer >> Det underlige er at man ikke engang kan sætte LCID på session til dansk. 1030 eller hvad coden er for så havde det været løst hvis man lagde dato'en i CDate.

Det andet er at jeg ikke kan forstå hvis denne SQL ikke virker da den laver dato'en i db'en om så den matcher det på hjemmesiden (som stadig skal i CDate() da det er en string der)

strSQL = "Select DISTINCT  herlev From bestilling where str_to_date(herlev,'%c/%d/%Y') >= '" & CDate(dato) & "' and pris='1'"
Avatar billede thesurfer Nybegynder
27. februar 2007 - 10:38 #31
qawi>

Ang LCID:
Man kan godt bruge LCID, men det virker ikke altid efter hensigten.. Folk klager tit over at det ikke virker..

Jeg ved ikke om din strSQL vil virke, men det er helt klart et forsøg værd..
Avatar billede l_otto Nybegynder
27. februar 2007 - 10:53 #32
men nu retter jeg til date, så hvordan ser sql så ud ?
Avatar billede thesurfer Nybegynder
27. februar 2007 - 10:58 #33
Jeg vil tro at det er:

strSQL = "Select DISTINCT  herlev From bestilling where herlev >= " & dato & " and pris='1'"

Husk på at MySQL gerne vil gemme tidspunktet med.. det kan gøre en forskel..
Men jeg ved ikke helt om det har en indflydelse på resultatet..

Prøv det..
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