Avatar billede aspguf Nybegynder
10. januar 2005 - 12:12 Der er 18 kommentarer og
1 løsning

dato i sql

Hey jeg har et lille probelm med min systems. da jeg skal arbejder med dato i sql

i min database (Mysql)

memberid | memberType | Startdato  |  Slutdato
=================================================
  1    | Medlem    | 2005-10-01 | 2006-10-01
-------------------------------------------------

Jeg skal have det sådan at i min sql string

set rs = Conn.execute("SELECT * FROM Betalinge where memberid ='1' and Startdato >=" & date() & " and  Slutdato <=" & date() & "")

If Not (rs.BOF Or rs.EOF) Then
  response.write " Data funde.."
else
  response.write " ingen "
end if

Hvordan får jeg det til at vire sådan at jeg har to dato som date() skal være inden for
Avatar billede fennec Nybegynder
10. januar 2005 - 12:27 #1
Du skal have formateret datoen rigtigt, også skal der ' omkring.

Function ConvertToSqlDate(dato)
  dim SQLYear,SQLMonth,SQLDay
  SQLYear = Year(dato)
  SQLMonth = Month(dato)
  SQLDay = Day(dato)
  if SQLDay<10 then
    SQLDay = 0&SQLDay
  end if
  if SQLMonth<10 then
    SQLMonth = 0&SQLMonth
  end if
  ConvertToSqlDate = SQLYear&"-"&SQLMonth&"-"&SQLDay
End Function

set rs = Conn.execute("SELECT * FROM Betalinge where memberid ='1' and Startdato >='" & ConvertToSqlDate(date()) & "' and  Slutdato <='" & ConvertToSqlDate(date()) & "'")
Avatar billede fennec Nybegynder
10. januar 2005 - 12:29 #2
... Ellers kan du bruge MySQL CURDATE() funktion, hvis det er dagsdato.

set rs = Conn.execute("SELECT * FROM Betalinge where memberid ='1' and Startdato >= CURDATE() and  Slutdato <= CURDATE()")
Avatar billede aspguf Nybegynder
10. januar 2005 - 12:45 #3
virker ikke.. ved ikke om det kan være min felt i min mysql... jeg bruger dato felt..
Avatar billede aspguf Nybegynder
10. januar 2005 - 12:48 #4
denne her virker kun halt..
set rs = Conn.execute("SELECT * FROM Betalinge where Startdato >= " & date() & "")
den viser alt.. selv om den ikke er ok..
Avatar billede fennec Nybegynder
10. januar 2005 - 13:01 #5
Det kan godt være den ikke vil have - med på datoen:

ConvertToSqlDate = SQLYear&SQLMonth&SQLDay
Avatar billede aspguf Nybegynder
10. januar 2005 - 13:05 #6
det virker heller ikke. det er da utrolige at det skal være så svært at få det til at virke..
Avatar billede fennec Nybegynder
10. januar 2005 - 13:07 #7
Der skal stadig ' omkring....

Du skal også kunne bruge CURDATE() funktionen. Det er en indbygget funktion i MySQL, også passer datoformatet ALTID.

Hvilken dato er "2005-10-01"? 10. jan eller 1. okt??
Avatar billede aspguf Nybegynder
10. januar 2005 - 13:17 #8
Virker heller ikke lige gyldig hvordan jeg gør..
Avatar billede fennec Nybegynder
10. januar 2005 - 13:24 #9
Får du nogen fejl, eller virker det bare ikke???
Avatar billede aspguf Nybegynder
10. januar 2005 - 13:28 #10
lidt af hvordan jeg sætte det op så får jeg fejl når jeg bruger curdate() virker det ikke og kommer med at der er fejl i line 19 som er sql stringe..

og køre jeg det på en anden måde unde curdate() kommer den bare med at der ingen poster er..
Avatar billede aspguf Nybegynder
10. januar 2005 - 13:28 #11
Sql stringe
set rs = Conn.execute("SELECT * FROM Betalinge where Startdato >=" & ConvertToSqlDate(date()) & " and Slutdato <=" & ConvertToSqlDate(date()) & "")

If Not (rs.BOF Or rs.EOF) Then
    response.write " Data funde.."
else
    response.write " ingen <br> date i dag er :" & date() & " " & ConvertToSqlDate(date())
end if
Avatar billede fennec Nybegynder
10. januar 2005 - 13:30 #12
Du skal huske at smide ' omkring...
set rs = Conn.execute("SELECT * FROM Betalinge where Startdato >='" & ConvertToSqlDate(date()) & "' and Slutdato <='" & ConvertToSqlDate(date()) & "'")

Ellers hvordan ser din kode og fejl ud når du bruger curdate()??
Avatar billede aspguf Nybegynder
10. januar 2005 - 13:35 #13
Det er der den bare giver mig at der ingen poster er i db med den dato.. og det er der..
Avatar billede fennec Nybegynder
10. januar 2005 - 13:39 #14
... Det er ikke fordi der er blevet byttet om på <= og >=.

set rs = Conn.execute("SELECT * FROM Betalinge where Startdato >= curdate() and Slutdato <= curdate()")

Der får du jo alle dem hvor Startdato er størrer end dagsdato og slutdato er mindre end dagsdato... Mon ikke det skal være:
set rs = Conn.execute("SELECT * FROM Betalinge where Startdato <= curdate() and Slutdato >= curdate()")
Avatar billede aspguf Nybegynder
10. januar 2005 - 13:43 #15
JUBII Det Ser ud til at virke..
Avatar billede aspguf Nybegynder
10. januar 2005 - 13:44 #16
smid et svar og point er dine..
Avatar billede fennec Nybegynder
10. januar 2005 - 13:50 #17
.o) <-- One Eyed Jack
Avatar billede aspguf Nybegynder
10. januar 2005 - 14:17 #18
jo lige en ting mere hvis jeg nu har to eller tre poster, hvordan får jeg så den post der er tættes på at udløbe..
Avatar billede fennec Nybegynder
10. januar 2005 - 14:25 #19
Jeg er ikke helt sikker på hvad du mener, men måske dette:
"SELECT * FROM Betalinge where Startdato <= curdate() and Slutdato >= curdate() Order by Slutdato"

Også kan du evt smide en "LIMIT 1" på også, hvis du kun vil have et resultat.
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