webForumDet fria alternativet

Plocka ut datum > för 5 dagar sedan

Databaser & SQL

7 svar · 387 visningar · startad av aasah

Medlem sedan mars 20034 471 inlägg
Frågan#1

Jag har en kolumn D som innehåller en DATE. Nu vill jag göra följande (fast utan pseudokod):

SELECT * FROM tabell
where D > "för 5 dagar sedan";

Hur skriver jag det villkoret? :q Använder MySQL.

Medlem sedan mars 20034 471 inlägg
#2

Eller kan man via PHP skapa en date som representerar det datum man vill jämföra med? Hur i så fall?

Det kanske går bättre. Fast, jag kan ju inte flytta frågan tyvärr....

Medlem sedan juli 2004181 inlägg
#3

antar att detta är vad du söker

SELECT * FROM tabell WHERE D > DATE_SUB( CURDATE( ) , INTERVAL 5 DAY );
Medlem sedan juni 20034 013 inlägg
#4

Du kan också använda Php för att få fram datumet för fem dagar sen med hjälp av funktionen date:

$sql = "SELECT * FROM tabell WHERE D > '" . date("Y-m-d", time() - 60 * 60 * 24 * 5) . "'";

(60 sekunder på en minut, 60 minuter på en timme, 24 timmar på ett dygn, 5 dygn.)

Medlem sedan mars 20034 471 inlägg
#5

Hade det gått hade jag accepterat tydals svar också! :D Tackar! :D

Medlem sedan mars 20034 471 inlägg
#6

Hur närmare bestämt är det tänkt att man ska använda dessa funktioner? :q

Följande fungerar inte:

$fiveDaysAgo = date("Y-m-d", time() - 60 * 60 * 24 * 5);
$query = "SELECT * FROM tabell
WHERE A ='".$_SESSION["sessID"]."' AND
B=".$_POST["B"]." AND Datum < $fiveDaysAgo";

Men inte heller detta verkar funka...

 $query = "SELECT * FROM FROM tabell
WHERE A ='".$_SESSION["sessID"]."' AND
B=".$_POST["B"]."  AND Datum < DATE_SUB( CURDATE( ) , INTERVAL 5 DAY )";

En testkod som använder endera varianten och sedan:

 $res = mysql_query($query) or die("main save: ".mysql_error());
 while ($row = mysql_fetch_array($res, MYSQL_NUM)) {
 foreach ($row as $ix => $val)
  echo "$ix =>  $val, ";
  echo "<BR>";
 }

skriver inte ut någonting alls??? :q :x Och ifall det hade funkat hade en rad kommit ut. Vad är det jag har missförstått? :q

(Den andra post där detta är nämnt visade sig inte ha något med detta problem att göra. Det problemet är löst. Därför verkar det mer motiverat att fråga om tips jag fått i denna tråd här. Alltså borde det inte vara en korspostning tycker jag.)

Medlem sedan juni 200032 967 inlägg
#7

Släng ut SQL-frågan till webbläsaren så du får se att de php-variabler du använder innehåller de värden du tror. Om sessionsvariabeln sessID inte innehåller något vettigt får du inte heller något resultat.

Mvh

Medlem sedan mars 20034 471 inlägg
#8

Det trodde jag att jag hade gjort, @nders... Hur som helst, vit magi har varit i farten. Idag fungerade det direkt utan att jag ändrat någonting.... :r Förstår inte vad jag höll på med igår... :r

Har accepterat svaren ovan igen.

257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)