Avatar billede it-studerende Nybegynder
18. juli 2005 - 18:59 Der er 14 kommentarer og
1 løsning

hvilke datatyper skal jeg bruge

jeg har en database hvor skal oprette sig selv og de skal bl.a. skrive deres fødselsdato (fx. 18-07-2005), men det er ikke sådan det kommer til at stå i DB, jeg har prøvet mig lidt frem med nogle forskellige datatyper med nu jeg slet ikke oprette en bruger. Jeg får denne fejl

Microsoft OLE DB Provider for SQL Server error '80040e07'

Syntax error converting datetime from character string.

/register.asp, line 24
Avatar billede terry Ekspert
18. juli 2005 - 21:46 #1
what is wrong with using a date/time field?
Avatar billede beef12 Nybegynder
18. juli 2005 - 22:42 #2
ud fra fejlmeddelsen ser det ud til at du faktisk anvender datetime. Kan du ikke vise din sql insert-sætning du har lavet i asp? Jeg mistænker at fejlen ligger der.
Avatar billede it-studerende Nybegynder
18. juli 2005 - 23:10 #3
ja jeg har prøvet med datetime, men DB gemmer kun 7 ud af 8 tegn hvor af det sidste er forkert.

Yes I have tried with datetime, but the DB only saves 7 out of 8 characters and the last one is wrong.

Her er min INSERT sætning/This is my INSERT sentence:

    sql="INSERT INTO adresse(oprettet,brugernavn,adgangskode,fornavn,mellemnavn,efternavn,fdato,adresse,postnummer,byen,land,email,telefon,mobil,kompagni,deling,gruppe) VALUES(GETDATE(),'"&brugernavn&"','"&adgangskode&"','"&fornavn&"','"&mellemnavn&"','"&efternavn&"','"&fdato&"','"&adresse&"','"&postnummer&"','"&byen&"','"&land&"','"&email&"','"&telefon&"','"&mobil&"','"&kompagni&"','"&deling&"','"&gruppe&"')"
    objConn.execute(sql)

Håber du/I kan hjælpe mig./Hope you can me.
Avatar billede terry Ekspert
19. juli 2005 - 08:24 #4
I understand danish so you dont need to answer in English, but thanks for the concideration :o)


You should try formatting your date as yyyy-mm-dd

I think you can use format(dato, "yyyy-mm-dd") in VB Script
Avatar billede beef12 Nybegynder
19. juli 2005 - 09:08 #5
Sql server burde kunne håndtere formatet dd-mm-yyyy. Det har min aldrig problemer med.

Tag din enterprise manager frem og tjek om kollonerne "oprettet" og "fdato" begge er af type datetime. Når du indsætter getDate(), så skal typen være datetime... måske er det derfor du får den fejlmeddelelse.
Avatar billede it-studerende Nybegynder
19. juli 2005 - 13:42 #6
når jeg bruger dato i min DB skal ALLE kolonner der indeholder dato så have den samme datatype??
Avatar billede terry Ekspert
19. juli 2005 - 15:04 #7
You should use date/time data type in SQL server if you want to ostored date/time values. You can also use char datatypes but that will only lead to problems
Avatar billede it-studerende Nybegynder
19. juli 2005 - 16:50 #8
jeg har datetime ved begge kolonner, men fejlbeskeden er kommet efter jeg har prøvet med nogle forskellige datatyper og så sat det tilbage til datetime.
Avatar billede beef12 Nybegynder
19. juli 2005 - 18:54 #9
oki - fair enough. Hvilken fejlmeddelelse får du nu så?
Avatar billede it-studerende Nybegynder
19. juli 2005 - 18:58 #10
så får jeg den fejl som jeg har skrevet i mit spørgsnål.

Microsoft OLE DB Provider for SQL Server error '80040e07'

Syntax error converting datetime from character string.

/register.asp, line 24
Avatar billede terry Ekspert
19. juli 2005 - 20:23 #11
when you get to this line
objConn.execute(sql)

sql contains an SQL string. Try copying it into query analyser and see what youy get there.
You could also show it here!
Avatar billede beef12 Nybegynder
19. juli 2005 - 21:15 #12
ah okay - nu ved jeg hvad problemet er. Har lige testet med min egen query analyzer.
Din variabel fdato indeholder nogle ulovlige tegn.

Anvender du .NET? Kan du finde ud af at debugge?

Anyway fdato indeholder nogle ulovlige tegn som stammer fra din asp kode.

Jeg lavede denne lille test:
insert into TST(datetest) values('12-12-2005 PM')
og får fejlen: Syntax error converting datetime from character string.
Der burde f.eks. stå:
insert into TST(datetest) values('12-12-2005') eller
insert into TST(datetest) values('12-12-2005 00:00:00.000')

Så tjek variablen fdato, så har du løsningen på problemet vil jeg mene...
Avatar billede it-studerende Nybegynder
19. juli 2005 - 22:07 #13
jeg bruger ren asp kode
Avatar billede it-studerende Nybegynder
19. juli 2005 - 22:17 #14
problemet er løst, jeg havde en navngivning i min request.form som ikke var rigtig
Avatar billede it-studerende Nybegynder
19. juli 2005 - 22:17 #15
Men jeg takker mange gange for den hjælp i har givet
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
Computerworld tilbyder specialiserede kurser i database-management

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