Avatar billede mini-me Nybegynder
15. februar 2005 - 13:40 Der er 19 kommentarer og
2 løsninger

Problemer med ASP & Dato

Hej Eksperter,

Jeg sidder og arbejder med noget nyhedsscript som automatisk skal sørge for at nyheden bliver deaktiveret når man når en given dato - jeg har dog problemer med hvordan jeg skal definere værdien af datoen for at finde ud af om den er større end.

Eks. jeg har min form hvor brugeren indtaster: 18-02-2005, dette bliver så også inputtet i min database i feltet endDate.

Hvad skal jeg bruge for at sammenligne denne dato med datoen i dag?
Avatar billede bruhnsweb Nybegynder
15. februar 2005 - 13:45 #1
If rs("endDate") < date() then
Avatar billede eagleeye Praktikant
15. februar 2005 - 13:45 #2
Når du henter nyhederne ud kan du jo sammenligne om endDate med "i dag" og kun tage poster med ud hvor endDate er størrer end i dag.

Hvilken database bruger du? Alle databaser har indbygget en date funktion som giver datoen i dag så for access vil det se sådan her ud:

select * from tbl where endDate>=Date()
Avatar billede mini-me Nybegynder
15. februar 2005 - 13:47 #3
Og jeg behøver ikke ændre lcid typen på serveren ?? Hvis ikke hvorfor og hvis hvorfor?
Avatar billede mini-me Nybegynder
15. februar 2005 - 13:47 #4
Jeg bruger pt. blot en MS Access...
Avatar billede bruhnsweb Nybegynder
15. februar 2005 - 13:50 #5
lcid typen er jo bare hvis serveren eks. er engelsk, så skal du ændre den til:
Session.LCID = 1030

ellers er det lige meget
Avatar billede bruhnsweb Nybegynder
15. februar 2005 - 13:50 #6
Session.LCID = 1030 (dansk)
Avatar billede mini-me Nybegynder
15. februar 2005 - 13:50 #7
Jeg tester lige og hvis det ikke virker kommer jeg efter jeg ;-)
Avatar billede eagleeye Praktikant
15. februar 2005 - 13:52 #8
Når du gemmer en dato via SQL skal du være opmærksom på at format af daten skal være mm-dd-yyyy eller yyyy-mm-dd og ikke dansk format da access vil bytte rundt på dag og måned.
Så når du indsætter kan dato formates med funktioner year, month, day.


dato = "18-02-2005"
strDato = Year(dato) & "-" & month(dato) & "-" & day(dato)
SQL = "insert into tbl (endDate) values (#" & strDato & "#)"
Avatar billede mini-me Nybegynder
15. februar 2005 - 13:55 #9
eagleeye:

Jeg forstår ikke lige dit script...

Giver det ikke bare strDato = dagen i dag, men i år - måned og dag?
Avatar billede eagleeye Praktikant
15. februar 2005 - 13:59 #10
Det er når du gemmer datoen i Access så skal datoen overføres i format mm-dd-yyyy eller yyyy-mm-dd, hvis endDate kolonnen er af typen Date/Time.
Avatar billede mini-me Nybegynder
15. februar 2005 - 14:03 #11
EagleEye:

Ja det forstår jeg, men hvordan regner den ud fra dit script ud hvad der er år måned og dag? Det forstår jeg ikke helt.
Avatar billede mini-me Nybegynder
15. februar 2005 - 14:05 #12
Mit database felt skal det bare være std. tekst felt eller skal det konventeres til et dato felt??
Avatar billede eagleeye Praktikant
15. februar 2005 - 14:06 #13
Den bruger funktionerne year, month og dy til at finde værdierne. Hvis du kære med DK format på din server ved den at når du skriver "18-02-2005" så er 18 dagen og 02 er månede og 2005 er årstallet. "18-02-2005" er den dato der kommer fra din form.
Avatar billede eagleeye Praktikant
15. februar 2005 - 14:07 #14
ok, nej du kan godt bruge test så indsæt det direkte som tekst:

SQL = "insert into tbl (endDate) values ('" & Request.From("endDate") & "')"

Og nrå du vil hente nyhederne ud så lav SQL sådan her:

SQL = "select * from tbl where CDate(endDate)>=Date()"
Avatar billede mini-me Nybegynder
15. februar 2005 - 14:10 #15
Microsoft][ODBC Microsoft Access Driver] Undefined function 'CDDate' in expression

Får jeg af fejl når jeg gør som du har skrevet...
Avatar billede eagleeye Praktikant
15. februar 2005 - 14:12 #16
Du har skrevet CDDate med to D'er det er CDate(endDate)
Avatar billede mini-me Nybegynder
15. februar 2005 - 14:15 #17
Jamen så virker det jo 110% ;-)

Kan jeg risikere at det ikke vil virke hvis session.lcid blev ændret ??

Det er da bare top i orden, jeg siger tusinde tak smid et svar - bruhnsweb du fortjener også lidt :)
Avatar billede bruhnsweb Nybegynder
15. februar 2005 - 14:18 #18
kun et halvt point - maks ;o)
Avatar billede eagleeye Praktikant
15. februar 2005 - 14:19 #19
Ok :)

Hvis du ændre lcid så vil det ikke ændre på det, når det er holdt i tekst eller hvis man holder det hele i dato'er. lcid vil ændre på formatet af de datoer du udskriver.
Avatar billede mini-me Nybegynder
15. februar 2005 - 14:20 #20
Nå min fejl kom til at give jer 50/50... kan du leve med det eagle? Så må du få lidt ekstra en anden god gang.
Avatar billede eagleeye Praktikant
15. februar 2005 - 14:21 #21
Ja det helt fint.
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