Avatar billede ulrich Novice
18. oktober 2001 - 15:06 Der er 8 kommentarer og
1 løsning

Dato problem

Hej

Jeg vil trække nyheder ud fra min database, der er højst 7 dage gamle.

<Fra ASP>

dim gammelDato
gammelDato = CDate(Date-7)
.
.
.
\"SELECT * FROM [Nyheder] WHERE NyhedsDato > # \" & gammelDato & \" # ORDER BY NyhedsDato DESC;\"

</Fra ASP>

Jeg har 5 poster i min access database, men den tager ingen ud. 3 af dem er nyere end 11-10-2001, som \"gammelDato\" bliver til.

Nogen der ved hvad der er galt?
Avatar billede knutbl Nybegynder
18. oktober 2001 - 15:38 #1
Kan vi få se hele koden? Får du noen feilmelding?
KnB
Avatar billede ulrich Novice
18. oktober 2001 - 16:17 #2
Jeg får ingen fejlmeldning

Jeg har ikke koden lige her, da det er på skolen jeg laver den.

Avatar billede pierrehusted Nybegynder
18. oktober 2001 - 16:42 #3
Prøv at udskrive SQL strengen. Det kan være at den faktisk er anderledes end du tror.
Det er sikkert et eller andet med datoformat.
Avatar billede ulrich Novice
18. oktober 2001 - 22:01 #4
Hvis jeg fjerner # fra sætningen udskriver den alle posterne i databasen..
Avatar billede nih Novice
18. oktober 2001 - 22:08 #5
\"#\" & format(gammeldato,\"mm-dd-yy\") & \"#\"

Virker denne format() mon i asp - for mig at se roder du lidt i variabeltyperne...

# bruges til at konvertere \'string\' til \'date\' ikke \'date\' til \'date\'.
Grunden til det giver forkert resultat når du fjerner \'#\' er at SQL anvender formattet \"mm-dd-yy\".

Vil gerne have kommentar til mit løsningsforslag idet jeg er ny i ASP - men det ligner da VB ;)

Niels
Avatar billede munck Nybegynder
18. oktober 2001 - 22:23 #6
Description
Returns an expression that has been converted to a Variant of subtype Date.
Syntax
CDate(date)
The date argument is any valid date expression.

Remarks
Use the IsDate function to determine if date can be converted to a date or time. CDate recognizes date literals and time literals as well as some numbers that fall within the range of acceptable dates. When converting a number to a date, the whole number portion is converted to a date. Any fractional part of the number is converted to a time of day, starting at midnight.
CDate recognizes date formats according to the locale setting of your system. The correct order of day, month, and year may not be determined if it is provided in a format other than one of the recognized date settings. In addition, a long date format is not recognized if it also contains the day-of-the-week string.

The following example uses the CDate function to convert a string to a date. In general, hard coding dates and times as strings (as shown in this example) is not recommended. Use date and time literals (such as #10/19/1962#, #4:45:23 PM#) instead.

MyDate = \"October 19, 1962\"      \' Define date
MyShortDate = CDate(MyDate)      \' Convert to Date data type
MyTime = \"4:35:47 PM\"            \' Define time
MyShortTime = CDate(MyTime)      \' Convert to Date data type


Mvh.
Munck
Avatar billede munck Nybegynder
18. oktober 2001 - 22:46 #7
Du kunne prøve med:

dim gammelDato
gammelDato = CDate(Now-7)

Mvh.
Munck
Avatar billede nih Novice
18. oktober 2001 - 23:06 #8
Du kunne også prøve manuelt at sætte datoen direkte ind i SQL\'en for at se hvilket format du skal bruge.....
\"SELECT * FROM [Nyheder] WHERE NyhedsDato > # 11-10-01 # ORDER BY NyhedsDato DESC;\"

Niels
Avatar billede ulrich Novice
19. oktober 2001 - 08:26 #9
Fejlen var at jeg havde session.lcid=1030 med.

Da jeg fjernede den virkede det.

Grunden til at jeg accepterede nih\'s svar er, at han skrev:

\"Grunden til det giver forkert resultat når du fjerner \'#\' er at SQL anvender formattet \"mm-dd-yy\".\"

Datoformatet i min DB er dd-mm-yyyy, men i SQL forstås den som han siger, mm-dd-yyyy. Derfor skulle jeg jo ikke bruge session.lcid=1030.

Takker Jer begge for hjælpen :]
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