Avatar billede bentbent Nybegynder
18. maj 2003 - 20:39 Der er 18 kommentarer og
3 løsninger

Vise poster med dato = dagens dato

Jeg kører en Mysql database!

Jeg skal nu trække nogle data ud fra en tabel i databasen hvor feltet Ustartdate skal være lig "dagens dato"

Når datoen bliver gemt i Ustartdate ser den således ud!

05/18/2003

min SQL sætninger lyder således!!! men virker åbenbart ikke!

"SELECT *  FROM clients WHERE DATE_FORMAT(Ustartdate,'%m/%d/%%%Y') = CURRENT_DATE"
Avatar billede medions Nybegynder
18. maj 2003 - 20:44 #1
Virker dette da ikke?

"SELECT *  FROM clients WHERE Ustartdate = CURRENT_DATE"

//>Rune
Avatar billede medions Nybegynder
18. maj 2003 - 20:44 #2
Og hvilken fejlmeddelse kommer den med?

//>Rune
Avatar billede blyno Praktikant
18. maj 2003 - 20:46 #3
Eller hvad med Date() ?
Avatar billede bentbent Nybegynder
18. maj 2003 - 20:49 #4
Nej det virker desværre heller ikke!

Den skriver blot at der ikke findes et record eller det er blevet slettet!!!

Men den har en record som hedder "05/18/2003" er det fordi den mangler nullet i 05  i måned??
Avatar billede bentbent Nybegynder
18. maj 2003 - 20:50 #5
Når jeg skriver <%=date()%> skriver den 5/18/2003
Avatar billede ellebaek Nybegynder
18. maj 2003 - 20:50 #6
Bør det ikke se sådan her ud...

"SELECT *  FROM clients WHERE DATE_FORMAT(Ustartdate,'%m/%d/%%%Y') = '"&CURRENT_DATE&"'"
Avatar billede bentbent Nybegynder
18. maj 2003 - 20:53 #7
den kommer med samme fejl når jeg bruger dit ellebaek
Avatar billede ellebaek Nybegynder
18. maj 2003 - 21:12 #8
hmm...!

"SELECT *  FROM clients WHERE day(Ustartdate) = '"&day(date)&"' AND month(Ustartdate) = '"&month(date)&"' AND year(Ustartdate) = '"&year(date)&"' AND"

Prøv dette (slamkode er godt :-))
Avatar billede bentbent Nybegynder
18. maj 2003 - 21:17 #9
Nu kommer den med følgende fejl!

SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax near '(Ustartdate) = '18' AND month(Ustartdate) = '5' AND year(Ustartdate) = '2003' AN' at line 1


/sendmail/mail1.asp, line 10


Er det ikke muligt at lave en forespørgsel ligesom i access hvor man laver en datecount:

SELECT DateDiff("d",Obegyndelse,Date()) AS Tid1, DateDiff("d",Date(),Oslut) AS hvilkendato, *
FROM opgaver;

hvor:

05/18/2003 = 0
06/18/2003 = 1

Hvorefter man så blot kunne skrive:

"SELECT *  FROM 'forespørgsel' WHERE hvilkendato = 0"
Avatar billede bentbent Nybegynder
18. maj 2003 - 21:22 #10
SELECT DateDiff("d",Date(),Ustartdate) AS Tid2, *
FROM opgaver;
Avatar billede ellebaek Nybegynder
18. maj 2003 - 21:23 #11
Når du tjekker dato i din sql skal du huske at det virker som strenge
altså der skal '' omkring.

Jeg er ikke helt sikker på jeg forstår hvad det er du vil med dit foreslag. Men jeg gør det ikke så meget i access, kan være derfor

Prøv denne først,
"SELECT *  FROM clients WHERE day(Ustartdate) = '"&day(date)&"' AND month(Ustartdate) = '"&month(date)&"' AND year(Ustartdate) = '"&year(date)&"'"


og derefter denne(hvis det andet ikke virker)
dato = month(date) & "/" & day(date) & "/" & year(date)
"SELECT *  FROM clients WHERE Ustartdate = '"&dato&"'"
Avatar billede bentbent Nybegynder
18. maj 2003 - 21:29 #12
De virker desværre ikke den kommer den med følgende fejl i dem begge, pånær hvilken linie fejen ligger i!

Microsoft VBScript runtime error '800a01c3'

Object not a collection: 'uclients.Source'

/sendmail/mail1.asp, line 7
Avatar billede ellebaek Nybegynder
18. maj 2003 - 21:31 #13
kan du ikke sende koden til min mail, så kan jeg se på det, jeg kan ikke helt se hvad det der uclients source er for noget...

jens@mail.zix.dk
Avatar billede ellebaek Nybegynder
18. maj 2003 - 22:01 #14
if len(month(date)) < 2 then
maaned = 0 & month(date)
else
maaned = month(date)
end if
if len(day(date)) < 2 then
dag = 0 & dag(date)
else
dag = day(date)
end if
if len(year(date)) < 4 then
aar = 20 & year(date)
else
aar = year(date)
end if

dato = maaned & "/" & dag & "/" & aar
sql = "Select * from Tabel1 where dato = '"&dato&"'"

Jeg tror dette virker, jeg har ikke rigtig mulighed for at teste det med dit script, da jeg ikke bruger ultradev... Men prøv det her...
Avatar billede oasen Nybegynder
19. maj 2003 - 11:06 #15
Du kunne jo også bare skrive:

dato = Right("0" & Month(Date), 2) & "/" & Right("0" & Day(Date), 2) & "/" & Year(Date)
Avatar billede ellebaek Nybegynder
19. maj 2003 - 11:09 #16
Dette virker ikke hvis datoen er på 2 tegn eller hvis måneden er på to tegn...

Så overskriver du jo bare det første tal i dato/måned med et 0...
Avatar billede oasen Nybegynder
19. maj 2003 - 11:13 #17
Husk at MySQL vil have datoer på formen YYYYMMDD:

Function ConvDate(Dato)
  ConvDate = Year(Streng) & "-" & Month(Streng) & "-" Day(Streng) & " " & FormatDateTime(Dato, vbLongTime)
End Function

"SELECT *  FROM clients WHERE Ustartdate = '" & ConvDate(Now) & "'"
Avatar billede oasen Nybegynder
19. maj 2003 - 11:15 #18
ellebaek ---> Jo, for jeg tager kun to tegn fra højre. Dvs:
Right("23", 2) = 23
Right("023", 2) = 23
Avatar billede ellebaek Nybegynder
19. maj 2003 - 11:28 #19
oasen -> Sorry min fejl.

Havde lige glemt hvordan right virkede...
Avatar billede bentbent Nybegynder
19. maj 2003 - 12:29 #20
Tusinde tak for hjælpen alle sammen!
Avatar billede oasen Nybegynder
19. maj 2003 - 15:19 #21
Velbekomme... Jeg går ud fra, du fandt en løsning, siden du har tildelt points...?
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