YodaMedlem sedan nov. 2002291 inlägg Håller på att göra en blogg. I inläggen har jag ett fält som är av typen datetime. Hur hämtar jag inläggen från ett visst datum där tiden inte spelar någon roll?
SELECT *
FROM Blogg
WHERE Datum = 2007-06-01
Fast det fungerar ju inte eftersom det inte finns några datum som ser ut så där i typen datetime.
Peter SMedlem sedan dec. 20025 483 inlägg Du skriver inte vilket DBMS som används. MSSQL:
SELECT *
FROM Blogg
WHERE year(Datum) = year(getdate())
and month(Datum) = month(getdate())
and day(Datum) = day(getdate())
YodaMedlem sedan nov. 2002291 inlägg Hm, vad betyder DBMS?
Jag använder MySQL 4.1 och datumet skrivs ÅÅÅÅ-MM-DD TT-MM-SS. Kanske det hjälper.
Peter SMedlem sedan dec. 20025 483 inlägg DBMS = Database Management System = Databashanteringssystem.
Byt ut getdate() mot curdate() för MySQL.
YodaMedlem sedan nov. 2002291 inlägg Okej, det har jag ju hört när jag tänker efter.
Fast det saknas något i satsen. Jag får inte ut några resultat. Var skriver jag in det datumet jag vill ha alt. skickar med variabel med datumet?
GunnarDMedlem sedan juni 20014 290 inlägg Prova med
SELECT *
FROM Blogg
WHERE Datum = '2007-06-01'
Peter SMedlem sedan dec. 20025 483 inlägg Av titeln på tråden att döma trodde jag du ville matcha mot poster från i dag. Till höger om likhetstecknen anger du de olika datumdelarna. Om du har en sträng d = "2007-06-01" kan du t.ex. skriva (VBScript):
d = cdate(d)
SELECT *
FROM Blogg
WHERE year(Datum) = year(d)
and month(Datum) = month(d)
and day(Datum) = day(d)
YodaMedlem sedan nov. 2002291 inlägg GunnarD: Den returnerar ett tomt resultat. Förmodligen eftersom datumen som finns i tabellen är ex. 2007-06-01 21:01:43 och då finns ju inte bara 2007-06-01. Väl?
Jag använder mig av php.
function select_inlagg()
{
$select_inlagg = "SELECT *
FROM Blogg
WHERE year( Datum ) = year( curdate(2007) )
AND month( Datum ) = month( curdate(06) )
AND day( Datum ) = day( curdate(01) ) ";
$result = mysql_query($select_inlagg);
return $result;
}
function inlagg($result)
{
while($data = mysql_fetch_array($result))
{
echo "<p>" . $data["Kommentar"] . "</p><p>/" . $data["Namn"] . "<br />" . $data["Datum"] . "</p><hr />";
}
}
och
$result = select_inlagg();
inlagg($result);
Fungerade inget vidare...
I dagens blogg vill jag hämta upp dagens inlägg/kommentarer.
Peter SMedlem sedan dec. 20025 483 inlägg curdate() vill inte ha parametrar. Vill du ha dagens poster använder du koden från inlägg #2, men byter ut getdate() mot curdate().
YodaMedlem sedan nov. 2002291 inlägg AHA, nu förstår jag. Det fungerar ju jättebra. Jag hade ingen kommentar från idag i tabellen bara. Tack!
Fast kommentarerna från idag vill jag ska visas i morgon också. Kommentarerna från igår ska visas tillsammans med mitt blogginlägg från igår. Hur skriver jag då då?
xox-seMedlem sedan maj 200732 inlägg testa att lägga till
SELECT * FROM Blog WHERE createad_at > FROM_DAYS(2)
där created_at är ett DATETIME fält som sparas med CURRENT_TIMESTAMP() / Now()
YodaMedlem sedan nov. 2002291 inlägg Tack!
Det var så här jag menade, förklarade förmodligen som en kratta.. :-)
SELECT *
FROM Blogg
WHERE Datum LIKE '2007-06-01%'
Då får jag ju alla kommentarer från det datumet oavsett tidpunkt.
Och istället för att skriva datumet i select-satsen kan jag skicka med en variabel i funktionen. Men det hör inte till detta forumet.
Tack för all hjälp!!