---
title: "Hjälp med Datediff och MySQL!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/69414-hjälp-med-datediff-och-mysql"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "lbrink"
published: "2003-02-25T17:21:08.000Z"
updated: "2005-02-12T16:43:16.000Z"
replies: 5
views: 363
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/69414-hjälp-med-datediff-och-mysql"
---

# Hjälp med Datediff och MySQL!

## #1 — lbrink, 2003-02-25T17:21Z

Hejsan Webforum!
Håller på med ett inloggninssystem som använder Access som databas, men vill nu gå över till MySQL. 
Jag har dock fastnat med en datumfunktion.

Såhär ser hela den koden som datumfunktionen körs i:
Conn.Execute("UPDATE members Set online = 'offline' Where online = 'online' AND senast \<= dateadd('s',-701,now()) ")

Denna kod ska rensa alla användare som har glömt att logga ut.

senast \<= dateadd('s',-701,now()) 
Denna kod kollar om användarens "senast" kolumn har blivit uppdaterad under dem senast 701 sekunder, om inte så uppdateras användarens "online" kolumn.

Nu till problemet:
Vad jag har förståt så funkar varken Dateadd eller datediff med MySQL, och det är just här problemet uppstår, hur ska
"senast \<= dateadd('s',-701,now()) "
se ut för att vara "MySQL-kompatibel"?

Permalänk: https://www.webforum.nu/p/69414

## #2 — Poffe, 2003-02-25T17:25Z

testa:

```
Conn.Execute("UPDATE members Set online = 'offline' Where online = 'online' AND datediff('s', senast, Now) >=701 ")
```

Permalänk: https://www.webforum.nu/p/960898

## #3 — lbrink, 2003-02-25T17:46Z

Poffe:
Tyvärr , funka inte det där heller.

Felmeddelandet jag får är:
"Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
\[TCX\]\[MyODBC\]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '('s',-701,now())' at line 1"

Permalänk: https://www.webforum.nu/p/960909

## #4 — LarsG, 2003-02-25T18:14Z

Flyttad från ASP.

Datediff/dateadd är inga standardfunktioner

```
Conn.Execute "UPDATE members Set online = 'offline' Where online = 'online' AND date_add(senast, interval 701 second) < current_timestamp"
```

I och för sig så är Mysqls funktiner inte närmare standard heller.

Permalänk: https://www.webforum.nu/p/960930

## #5 — lbrink, 2003-02-25T19:39Z

Tack LarsG, det funkade utmärkt.

Permalänk: https://www.webforum.nu/p/960981

## #6 — WebbisNet, 2005-02-12T16:43Z

Om jag fortsätter på detta inlägg så får jag med objConn.Execute("DELETE FROM tblUsers WHERE DateDiff('d', Datum, Now) \> 86") detta fel:
\[MySQL\]\[ODBC 3.51 Driver\]\[mysqld-4.0.23a-log\]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '('d', Datum, Now) \> 86' at line 1 

Jag vill att alla som inte har loggat in de senaste 86 dagarna ska raderas från db, ett annat problem är att inga poster raderas så koden verkar inte köras.....hade denna kod när jag körde med access. Nu när jag har MySQL så funkar inte koden och koden kommer troligtvis inte att köras nu heller.....hur får man den att köras automatiskt när man får koden att funka

Permalänk: https://www.webforum.nu/p/1550913

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/69414-hjälp-med-datediff-och-mysql
