Avatar billede eyes Nybegynder
22. august 2007 - 08:03 Der er 2 kommentarer

datofelter i asp/mysql

hej Eksperten

sidder her og arbejder med nogle datofelter i mysql

hvad er den korrekte metode for at indsætte en dato korrekt, så man kan bruge den til at sortere efter osv.

har prøvet at sætte datatype til date og bruge denne sql sætning men den smider en fejl

StrSQL = "INSERT INTO Vaerktoej_udlaan (vaerktoejID, udlaaner, laaner, placering, udlaan_dato) VALUES('"+id+"', '"+udlaaner+"', '"+laaner+"', '"+placering+"', '"+Cstr(Date())+"'"

den giver følgende fejl

Error Type:
ADODB.Connection.1 (0x80004005)
SQLState: 37000 Native Error Code: 1064 [MySQL][ODBC 3.51 Driver][mysqld-4.1.11-Debian_4sarge7-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
/vaerktoej/opret.asp, line 127

når jeg bare henter datoen ud for at tjekke den får jeg følgende
22.08.2007 , men databasen er formatet 0000-00-00

/simon
Avatar billede ffsoft Praktikant
22. august 2007 - 08:38 #1
Plus (+) er en regneoperator i vb prøv med OgTegn (&) i stedet.

... udlaaner, laaner, placering, udlaan_dato) VALUES('" & id & "', '" & udlaaner & "', '" & laaner & "', o.s.v.
Avatar billede fennec Nybegynder
22. august 2007 - 09:37 #2
Jeg er ikke helt sikker på om du har forstået datoformateringen og hvad den betyder for brug i en sql sætning.

Data du trækker ud sørger database forbindelsen for at formatere til ASP format, hvilket betyder at din visning afgøres af LCID'en. Når datoer skal overføres til MySQL via en sql streng, kan denne formatering ikke forkommer, så det skal du selv sørge for at gøre. I MySQL er formatet yyyy-mm-dd.

Dette er derfor forkert:
sql = "insert into table(datoFelt) values('22-08-2007')"
sql = "select * from table where datoFelt<'22-08-2007'"

Dette er rigtigt:
sql = "insert into table(datoFelt) values('2007-08-22')"
sql = "select * from table where datoFelt<'2007-08-22'"

Man har derfor ofte en funktion til at formatere datoer til databasens format.

function DBDate(fDate)
dim fDay, fMonth, fYear
  fDay = rigth("0"&day(fDate),2)
  fMonth = rigth("0"&month(fDate),2)
  fYear = year(fDate)
  DBDate = fYear &"-"& fMonth &"-"& fDay
end function

StrSQL = "INSERT INTO Vaerktoej_udlaan (vaerktoejID, udlaaner, laaner, placering, udlaan_dato) VALUES('"&id&"', '"&udlaaner&"', '"&laaner&"', '"&placering&"', '"&DBDate(Date())&"'"
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