Avatar billede wermelin Nybegynder
22. marts 2001 - 12:01 Der er 11 kommentarer og
2 løsninger

Problem med smalldatetime, session.lcid etc. etc.

Hejsan!

Jeg er stødt ind i et problem med smalldatetime.
Jeg har en tabel i SQL Server 7 med en kolonne der hedder idag og som har datatypen smalldatetime.

I mit script skal jeg sammenligne dagens data - date() - med feltet idag; disse skal være ligmed hinanden.

Min kode ser således ud:
session.lcid=1030
trSQL = \"SELECT * FROM VARE INNER JOIN KUNDEREG ON VARE.KUNDEID=KUNDEREG.KUNDEID WHERE\"
strSQL = strSQL & \" (VARE.KUNDEID = \"&strKeyword &\")\"
strSQL = strSQL & \" AND (VARE.IDAG = \"&date()& \")\"

Og jeg får denne fejlmeddelelse:
Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic overflow error converting expression to data type smalldatetime

Hvis jeg ændrer til lcid=1033, kommer fejlen ikke, men scriptet udtrækker heller ikke nogen poster selvom date=idag!

Kan nogen hjælpe mig??

Wermelin
Avatar billede slash Nybegynder
22. marts 2001 - 12:03 #1
kan du ikke konvertere dags dato til smalldatetime... altså

dagsdato = formatedatetime(now(), vhshortdate)
Avatar billede wermelin Nybegynder
22. marts 2001 - 12:08 #2
Hmm.... nej - det fungerer i hvert fald ikke med din kode!
Men det er nok i den retning jeg skal...
Avatar billede wermelin Nybegynder
22. marts 2001 - 12:09 #3
får denne fejl med dit forslag slash
Typerne stemmer ikke overens: \'formatedatetime\'
Avatar billede slash Nybegynder
22. marts 2001 - 12:11 #4
ups stavsefejl... det hedder formatdatetime

havde skrevet formatedatetime!
Avatar billede wermelin Nybegynder
22. marts 2001 - 12:13 #5
Ja - det fandt jeg lige ud af; og så får jeg \'Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic overflow error converting expression to data type smalldatetime\' igen
Avatar billede slash Nybegynder
22. marts 2001 - 12:18 #6
det format der er i db\'en passer ikke med det du sammenligner med....
prøv at skrive det format ud der er i tuplen, og skriv så det format ud du sammenligner med! hvis der i sqlserver står 032201 for idag, mens du sammenligner med 220301 i asp, så går det i ged....
Avatar billede wermelin Nybegynder
22. marts 2001 - 12:21 #7
I db\'en står der 22-03-2001 og dagsdato er 22-03-2001 12:21:28

Dvs der kommer klokkeslet på - det må der ikke!
Avatar billede slash Nybegynder
22. marts 2001 - 12:24 #8
vil dette hjælpe:

dato = day(now)&\"-\"&month(now)&\"-\"&year(now)
Avatar billede slash Nybegynder
22. marts 2001 - 12:27 #9
hat es geholfen?
Avatar billede wermelin Nybegynder
22. marts 2001 - 12:29 #10
Tjoh! Der står godt nok 22-3-2001 nu - men denne fejl kommer stadigvæk
[Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic overflow error converting expression to data type smalldatetime.
Avatar billede olelar Nybegynder
22. marts 2001 - 12:52 #11
I Access virker flg:
(\"SELECT * FROM tabel WHERE dato=DATEVALUE(\'\" & REQUEST.QUERYSTRING(\"dato\") & \"\') order BY fra\")
Avatar billede wermelin Nybegynder
23. marts 2001 - 11:57 #12
olelar: Det virker heller ikke - jeg bruger jo også SQL Server 7!

Jeg synes at det er et meget mærkeligt problem efterhånden.
I db\'en er feltet sat til smalldatetime.
Hvis man skriver feltet ud i scriptet står der 23-03-2001.
Hvis man skriver fx. formatdatetime(date()) står der 23-03-2001!
Når man så sætter feltet dato = formatdatetime(date()) får man fejlen [Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic overflow error converting expression to data type smalldatetime. Og det er selvom de er fuldstændig lig med hinanden - det er sgu da mærkeligt!!!!

Pleeeaaasseeeee en eller anden.... HJÆLP!!
Avatar billede wermelin Nybegynder
09. april 2001 - 01:28 #13
Jeg lukker spørgsmålet - I 2 deler bare pointene selvom intet virkede!
Det endede med at jeg lavede datofeltet om til char....
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