---
title: "Jämföra två datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/133278-jämföra-två-datum"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "lillebror"
published: "2005-08-25T09:40:27.000Z"
updated: "2005-09-12T04:57:31.000Z"
replies: 18
views: 552
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/133278-jämföra-två-datum"
---

# Jämföra två datum

## #1 — lillebror, 2005-08-25T09:40Z

Hej,

Jag skulle behöva lite hjälp med att formulera en WHERE-sats.

Jag håller på och utvecklar ett eget forum. För trådar och inlägg finns det en redigeringsfunktion precis som på wF. Nu vill jag att användaren skall ha möjlighet att ändra på sitt inlägg om något blev fel, inom en 5-minutersgräns utan att det syns i tråden att den har blivit redigerad. Om denna gräns passeras kommer ett fält i tråden att få en tidsstämpel när den senast blev redigerad och detta kommer att synas i tråden.

Har sökt efter olika MySQL-funktioner men har inte lyckats hitta någon som kan passa. En funktion jag använde mig av tidigare är DATEDIFF men med den fick jag inte till det.

Det berörda fältet är "postdate" som skall jämföras med now().

Några tips?

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

## #2 — @nders, 2005-08-25T09:58Z

dmbs / version?

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

## #3 — lillebror, 2005-08-25T10:12Z

MySQL ver. 4

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

## #4 — @nders, 2005-08-25T10:18Z

Datediff i MySQL dök väl upp i v 4.1. I tidigare versioner kan du  kika på funktionen [subtime()](http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html).

mvh

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

## #5 — lillebror, 2005-08-25T10:38Z

Kan detta bli rätt:

```
INSERT INTO tblforumthread (edit) VALUES ('$editpoststamp') WHERE DATE_SUB(now(),INTERVAL 5 MINUTES) > postdate AND threadID = $threadID;
```

Skriver denna sats in datumet då posten editerades om detta gjordes mer än 5 min från det att posten skapades?  :)

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

## #6 — LarsG, 2005-08-25T10:46Z

Den kommer alltid att ge fel. Du kan inte ange where för insert.

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

## #7 — @nders, 2005-08-25T10:46Z

INSERT skapar nya poster.
Du vill nog göra en UPDATE?

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

## #8 — lillebror, 2005-08-25T10:53Z

> **@nders skrev:**
>
> INSERT skapar nya poster.

Så korkad jag e :e Visst är det en UPDATE jag vill göra. Då behöver jag bara byta ut INSERT mot UPDATE? Fungerar WHERE-villkoret för mitt ändamål?

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

## #9 — @nders, 2005-08-25T10:59Z

Det borde fungera för ditt ändamål. Gör en select med samma villkor, så ser du. :)

mvh

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

## #10 — lillebror, 2005-08-25T11:01Z

Will do :)

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

## #11 — lillebror, 2005-08-25T11:29Z

Kom på nu att det inte kommer fungera att ha detta villkor i själva SQL-satsen.

Jag måste väl jämföra datumet då posten skapades med den aktuella tiden i en if-sats innan för att avgöra vilken av två olika SQL-satser som skall exekveras beroende på om villkoret är uppfyllt? Finns det något motsvarande funktion (DATE_SUB())i PHP?

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

## #12 — lillebror, 2005-08-28T11:59Z

Nån som känner till en sån funktion?

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

## #13 — LarsG, 2005-08-28T13:21Z

Varför kan du inte uppdatera kolumnen samtidigt som du uppdaterar inlägget?

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

## #14 — lillebror, 2005-08-28T14:24Z

Hmm...Jag kanske tänker fel...Hur som helst verkar inte uttrycket fungera som jag vill ha det:

```
DATE_SUB(now(),INTERVAL 5 MINUTES) > postdate
```

Villkoret jag vill åstadkomma är att när man skrivit ett inlägg och redigerar det inom 5 minuter från det att det skapades så ska inte något värde skrivas till databasen. Hur gör jag detta?

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

## #15 — Peter S, 2005-08-28T14:39Z

Vad är det som inte fungerar? Förresten, skall det inte vara:

```
DATE_SUB(now(),INTERVAL 5 [b]MINUTE[/b])
```

?

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

## #16 — lillebror, 2005-08-28T14:48Z

Oavsett om jag använder MINUTES eller MINUTE så uppdateras fältet lastedited vilket borde innebära att villkoret är sant även fast det inte hunnit gå 5 minuter från det att inlägget skapades. Det är något knas på uttrycket....Vet inte riktigt hur jag ska få till det...:OO

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

## #17 — Peter S, 2005-08-28T15:08Z

Vad är postdate för datatyp?

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

## #18 — lillebror, 2005-08-28T15:10Z

> **Peter S skrev:**
>
> Vad är postdate för datatyp?

Datetime!

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

## #19 — lillebror, 2005-09-12T04:57Z

Någon som vet hur en WHERE-sats skulle kunna se ut i SQL som ger en användare 5 min "ångertid" om denne skulle ha postat fel och vill redigera. Då skall dej inte synas att inlägget är redigerat. Hur skulle koden kunna se ut för det?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/133278-jämföra-två-datum
