Select med tidspunkter

Tags:    databaser

Har en MySQL tabel med 2 kolonner [start] og [slut] som er af typen [time] og indeholder tidspunkter som fx. Start: 08:00:00, Slut: 16:00:00

Jeg vil gerne lave en SELECT statment som henter poster hvor [klokken nu] er indenfor [start] og [slut]

så længe tiden er før 23.59.59 går det fint men så snart klokken er midnat eller senere fejler den. Nogle der kan hjælpe?

min SELECT som den ser ud nu:

SELECT * FROM tabel WHERE start <= '09:12:00' AND slut >= '09:12:00'

Som sagt kan jeg godt hente rækker hvor start=09:00:00 og slut=16:00:00 men når start=16:00:00 og slut er 09:00:00 fejler den?



5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Jah brug eksempelvis unix-time.
Ideen med det er nemlig at unix time altid tæller op af, og så har du nemlig ikke det problem med klokken 0:0:0.

Er rigtig enkelt. Du henter tiden således:
$today = time();

Læs rigtig meget godt omkring det her:
http://dk.php.net/manual/en/function.time.php



Den fejler fordi der kan være en dags forskel i klokkeslæt, så jeg ville nok sætte dato mærkning på også.

Så kan du matche på f.eks:
SELECT * FROM tabel WHERE start <= '2010-03-12 16:00:00' AND slut >= '2010-03-13 09:00:00'



Indlæg senest redigeret d. 12.03.2010 10:44 af Bruger #10216
Hvorfor ikke bruge Unix time ?



Hvordan opfører timestamp sig i forhold til tidszoner? har man 3600 i forskel i timestamp for hver tidszone eller er det UTC tid det følger?



Med det der SQL statement kan man også bruge følgende..
SELECT *
FROM table
WHERE column
BETWEEN '2010-04-01 07:30:13' AND '2010-05-14 23:04:30'

På den måde kan du få det der er i mellem to datoer eller timestamps



t