/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Hjælp med Date funktion i SQL
Fra : Martin_P


Dato : 23-01-03 08:12

Jeg har en ASP side, hvor jeg tilføjer datoen til sql databasen(ms sql
2000)
MEN!!! jeg får følgende fejl :
[Microsoft][ODBC SQL Server Driver][SQL Server]The conversion of a
char data type to a datetime data type resulted in an out-of-range
datetime value.

Linie den går galt i er min sql sætning som kommer her :
sql = "insert into taeller (Taeller,[dato]) Values ('0','" & strDato &
"')"

og udskrevet på skærmen :
insert into taeller (Taeller,[dato]) Values ('0','23-01-2003')

Det virkede fint på en alm. access 2000 db...

hilfe!!

Martin_P


 
 
Martin_P (23-01-2003)
Kommentar
Fra : Martin_P


Dato : 23-01-03 08:57


>Linie den går galt i er min sql sætning som kommer her :
>sql = "insert into taeller (Taeller,[dato]) Values ('0','" & strDato &
>"')"
Længere oppe definerer jeg strDato som :
strDato = Date()

Glemte lige at få den med første gang.....
>
>Martin_P


Jens Gyldenkærne Cla~ (23-01-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 23-01-03 11:36

Martin_P skrev:

> Længere oppe definerer jeg strDato som :
> strDato = Date()

Hvorfor bruger du så ikke bare SQL-serveren til at generere datoen?

   insert into taeller (Taeller,[dato]) Values ('0',GETDATE())

- eller endnu bedre, definer GETDATE() som standardværdi for dit
datofelt.

(det forekommer mig i øvrigt at jeg har givet samme råd for ganske
kort tid siden...)
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

TH (23-01-2003)
Kommentar
Fra : TH


Dato : 23-01-03 09:39

Hej,

"Martin_P" <dsl6041XXXX@vip.cybercity.dk> skrev i en meddelelse
news:495v2vs33u7k416emhae7a94ocfjmrt4or@4ax.com...

> insert into taeller (Taeller,[dato]) Values ('0','23-01-2003')

SQL server tager måneder først. Dvs du prøver måned 23...hvilket ikke går
;:)
Du skal lave den om til "01-23-2003" inden du sætter den i DB'en.

/TH


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.443 / Virus Database: 248 - Release Date: 10-01-2003



Jimmy (23-01-2003)
Kommentar
Fra : Jimmy


Dato : 23-01-03 09:45


"TH" <th@cogito.dk> wrote in message
news:3e2faa2e$0$148$edfadb0f@dtext02.news.tele.dk...
> Hej,
>
> "Martin_P" <dsl6041XXXX@vip.cybercity.dk> skrev i en meddelelse
> news:495v2vs33u7k416emhae7a94ocfjmrt4or@4ax.com...
>
> > insert into taeller (Taeller,[dato]) Values ('0','23-01-2003')
>
> SQL server tager måneder først. Dvs du prøver måned 23...hvilket ikke går
> ;:)
> Du skal lave den om til "01-23-2003" inden du sætter den i DB'en.

Jeg kender intet til MSSQL, men i stedet for ovenstående åbenbart
DB-specifikke format, burde det være muligt at anvende et universelt format:

År-Måned-Dag

Den kan ikke læses forkert som de to ovenstående kan.
Eks. 07-08-2003 - Er det 7/8 eller 8/7

Mvh
Jimmy



TH (23-01-2003)
Kommentar
Fra : TH


Dato : 23-01-03 09:54

Hej,

"Jimmy" <spoerg@efter.den> skrev i en meddelelse
news:eYNX9.1060$Gr4.293@news.get2net.dk...

> År-Måned-Dag

Alt efter opsætning af serveren svjh.

/TH


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.443 / Virus Database: 248 - Release Date: 10-01-2003



Carsten Suurland (23-01-2003)
Kommentar
Fra : Carsten Suurland


Dato : 23-01-03 11:03

Hej Martin

Hvis du vil gøre dig selv en STOR tjeneste, så lad være med at oprette date
felter i din database...
Opret i stedet alle date-felter som float (double).

Når du så skal gemme en dato gemmer du istedet det tilsvarende tal (det gør
databasen nemlig under alle omstændigheder).

F.eks.

Dim MyDate
MyDate = CDbl(Date())

Når du anvender denne fremgangsmåde, er du 100% fri for at tænke på formater
m.v.

Når du henter datoer (tal) fra databasen, skal du blot huske at konvertere
dem tilbage til en egentlig dato.

Dim MyDate
MyDate = CDate(rs("MyDate"))

/Carsten Suurland



F.Larsen (23-01-2003)
Kommentar
Fra : F.Larsen


Dato : 23-01-03 14:49

"Martin_P" <dsl6041XXXX@vip.cybercity.dk> wrote in message
news:495v2vs33u7k416emhae7a94ocfjmrt4or@4ax.com...
> insert into taeller (Taeller,[dato]) Values ('0','23-01-2003')
>
> Det virkede fint på en alm. access 2000 db...
>
> hilfe!!
... medic ?

Prøv at kigge på funktionen DateSerial(year, month, day) den har løst mine
problemer. Jeg har interfacet til flere typer af databaser (SQL, Access,
oracle, ...) og min konklusion er at der ikke er en generel måde at håndtere
datoer så de opfattes "rigtigt" af databasen. Jeg benytter derfor altid ansi
standarden for dato angivelse i mine programmer "YYYY-MM-DD" og en funktion
til at konvertere ANSI datoen til/fra aktuelt db format ved brug af
konverterings funktioner for den enkele database.

Som andre har påpeget er ansi dato den eneste dato format der ikke kan
misforstås. Husk at sætte LCID=1030 (dansk) ellers vil asp siden være
afhængigt af hvilket sprog server er sat op til at bruge default.

--
Flemming
http://home.cbkn.dk/Spyware/
http://home.cbkn.dk/Spam/



Søg
Reklame
Statistik
Spørgsmål : 177551
Tips : 31968
Nyheder : 719565
Indlæg : 6408836
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste