webForumDet fria alternativet

select < 1 tim

Databaser & SQL

8 svar · 350 visningar · startad av Php

Medlem sedan sep. 2001224 inlägg
Frågan#1

Hur ser select satsen ut för om jag ska skriva ut alla poster, som är inlagda för mindre än en timma sedan? Jag försökte med följande, men lyckades ej.
Datumet finns i databasen sparat som datetime Y-m-d (H:i)

$kolla = mysql_query("SELECT * FROM request where time > DATE_SUB(NOW(), INTERVAL 1 HOUR)");
Medlem sedan dec. 200012 464 inlägg
#2

Vad betyder

men lyckades ej

?

Jag ser inget fel i den sql-sats du har skrivit nu.

Medlem sedan sep. 20011 086 inlägg
#3

Felet är att time är ett reserverat ord. Gör såhär istället

$kolla = mysql_query("SELECT * FROM request where `time` > DATE_SUB(NOW(), INTERVAL 1 HOUR)");

Dvs, sätt backsticks ` ` runt time

Medlem sedan sep. 20011 086 inlägg
#4

För att lättare kunna felsöka så kör

$kolla = mysql_query(....) or die(mysql_error());
Medlem sedan dec. 200012 464 inlägg
#5

Felet är att time är ett reserverat ord.

Inte i Mysql.

Medlem sedan sep. 20011 086 inlägg
#6

LarsG skrev:

Felet är att time är ett reserverat ord.

Inte i Mysql.

Av vilken anledning är det då att `time` fungerar men inte time?

Medlem sedan dec. 200012 464 inlägg
#7

Jag testade i 4.1 av Mysql och där gick det bra att använda time som klolumnnamn.

Medlem sedan juni 2000504 inlägg
#8

kanske att ovanstående SQL var skriven direkt i php-sidan och att time är ett reserverat ord i php men inte i mysql, eller...? :)

Medlem sedan juni 200032 967 inlägg
#9

CokeLight skrev:

kanske att ovanstående SQL var skriven direkt i php-sidan och att time är ett reserverat ord i php men inte i mysql, eller...? :)

Nej, det har ingen betydelse.

Mvh

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