webForumDet fria alternativet

Mismatch vid CDate och annat fel utan CDate ;)

ASP

9 svar · 370 visningar · startad av bassebhu

Medlem sedan nov. 20016 480 inlägg
Frågan#1

Hej!

Kör ett script som alltid funkat på en server men inte på den nya.

Type mismatch: '[string: "26.03.2004 23:04:02"]' säger den. Vilket är konstigt eftersom om jag skriver ut NOW() så får den utseendet: 26-03-2004 23:04:02.

Detta fel uppstår när jag kör en datediff kan tilläggas. Inte så konstigt att den inte vill jämföra de två strängarna, en med . och en med -. Varför gör den om NOW() med - till RecSet med . ? Jag kör svensk datumgrej på sidorna.

Har även testat med CDate och DateSerial eller vad mer kul jag hittade med wF's sökmaskin.

Hur fixar jag felet utan att fula med replacefunktion?

postdate = RecSet("datum")
If DateDiff("n", postdate, Now()) < 1 Then
[...]

och som sagt provat CDate(RecSet("datum")) med annan mismatch som resultat.

Mvh, Sebastian

Medlem sedan apr. 20022 743 inlägg
#2

Vad använder du för databas och hur lägger du in datumet i databasen?

Medlem sedan nov. 20016 480 inlägg
#3

access. med aspkod :P som vanligt: RecSet("datum") = NOW()
och fälttypen är datum :)

den verkar bara göra om NOW() när den hamnar i ett recordset =/

kör jag isdate på recsetet så säger den false =/

Medlem sedan apr. 20022 743 inlägg
#4

bassebhu skrev:

access. med aspkod :P som vanligt: RecSet("datum") = NOW()

Vanligt och vanligt, de flesta kör nog med SQL så det är nog vanligare ;)

Vet tyvärr inte vad felet är om det är datum-format på fältet, vet bara att jag haft samma problem med mySQL men det var för att jag sparade datumet i databasen fel. Kanske beror på det nu också iofs, testa med SQL istället, kanske fungerar bättre :bire

Medlem sedan nov. 20016 480 inlägg
#5

samma med SQL :(

fler tips?

Medlem sedan juni 20022 599 inlägg
#6

bassebhu skrev:

och som sagt provat CDate(RecSet("datum")) med annan mismatch som resultat.

Om CDate(RecSet("datum")) ger mismatch så är fältet "datum" inte av typen Date (och om det är av typen Date så finns det ingen anledning att använda CDate).

Medlem sedan nov. 20016 480 inlägg
#7

jo det är typen date. grejen var att den sparade datumet med punkter (.) i stället för streck (-) som jag visade.

Ingen aning varför, men jag löste det tillfälligt med att sätta en Replace:
Replace(RecSet("datum"),".","-")
Fula lösningar är också lösningar ;)

CDate testade jag bara för att det inte funkade utan heller.

Men eftersom jag inte fick någon fungerande komponentslös uploadfunktion att fungera (inte ens overrides) så blev jag tvungen att ta en annan server ändå :( Dock funkar allt på den, men jag har lite webbutrymme där :(

Medlem sedan juni 20022 599 inlägg
#8

jo det är typen date.

Isåf är det väldigt märkligt. Jag har aldrig hört att man skulle kunna få "Type mismatch" av att casta en typ till sig själv? Är det ChiliASP du kör?

grejen var att den sparade datumet med punkter (.) i stället för streck (-) som jag visade.

Fast grejen med Date (i motsats till strängar) är att de inte har nåt format alls. Den sparar alltså varken med "." eller "-". De tecknen tillkommer först när nu skriver ut värdet eller castar till string.

Medlem sedan nov. 20016 480 inlägg
#9

Det är ingen chiliasp. ja nåt fel var det. för om jag skrev ut NOW() så fick jag det med (-). Om jag sparade NOW() i date-fält och sedan skrev ut så blev det med (.)

Medlem sedan jan. 2001373 inlägg
#10

trim kanske ?

251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)