Just nu i M3-nätverket
Gå till innehåll

Lägga till en sekund?


Cluster

Rekommendera Poster

Låt säga att jag har en tabell som heter myTable och som bla har kolumnerna dateOne och dateTwo.

Det jag vill är att dateTwo ska sättas till dateOne+1sekund.

dateOne och dateTwo är i formatet datum/tid (dvs. 2005-02-10 15:48:48)

Typ:

"UPDATE myTable SET dateTwo=DATEADD(s,1,dateOne) WHERE dateTwo IS NOT NULL"

Men då får jag:

"Microsoft JET Database Engine (0x80040E10)

Det har inte angetts något värde för en eller flera nödvändiga parametrar."

 

Det är en asp-lösning och jag skulle helst vilja slippa köra:

SET RS=conn.execute("SELECT id, dateOne FROM myTable WHERE dateOne IS NOT NULL")
IF NOT RS.EOF THEN
  DO Until RS.EOF
     newDate=DateAdd("s", 1, RS(1))
     conn.execute("UPDATE myTable SET dateTwo=#"&newDate&"# WHERE id="&RS(0)&"")
     RS.MoveNext
  Loop
END IF
SET RS=Nothing

 

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

[inlägget ändrat 2005-02-10 18:20:02 av Cluster]

Länk till kommentar
Dela på andra webbplatser

Slarvfel....

"UPDATE myTable SET dateTwo=DATEADD(""s"",1,dateOne) WHERE dateTwo IS NOT NULL"

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

Länk till kommentar
Dela på andra webbplatser

Varken för många eller för få fnuttar är bra.

 

Testa

 

"UPDATE myTable SET dateTwo=DATEADD("s",1,dateOne) WHERE dateTwo IS NOT NULL"

 

Det fungerar för mig direkt i Access

 

Länk till kommentar
Dela på andra webbplatser

Och mitt förra inlägg fungerar fin, det var det jag menade med slarvfel. Men tack ändå. :thumbsup:

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

Länk till kommentar
Dela på andra webbplatser

Du borde väl kolla om dateOne är NULL istället för dateTwo, eftersom det är tveksamt att man kan lägga till en sekund till NULL.

sql = "UPDATE myTable SET dateTwo=DATEADD(""s"",1,dateOne) WHERE dateOne IS NOT NULL"

mvh

Olle

 

Länk till kommentar
Dela på andra webbplatser

Jo om det var några tveksamheter om huruvida dateOne är null så skulle jag göra det. Men eftersom dateOne alltid har ett värde (hanteras på annan plats) så är detta inte ett problem. Men eftersom vissa rader inte har något dateTwo, och inte skall ha det så måste jag kontrollera att dateTwo har ett värde innan det uppdateras. Annars blir det fel - igen.

 

Allt detta beror på att en klåpare körde ett skript som skulle uppdatera EN post men glömde WHERE id=xxx och då lade in samma dateTwo på alla poster. Grrr... Eftersom han inte hade någon backup och att hans lilla felsteg fått hela sajten att strula så tänkte jag "rädda" honom genom att sätta lite mer rimliga dateTwo.

 

Hur som helst så är "mitt" problem nu löst. :-)

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...