Just nu i M3-nätverket
Jump to content

Lägga till en sekund?


Cluster

Recommended Posts

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]

Link to comment
Share on other sites

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 <------

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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 <------

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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 <------

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...