Avatar billede mat Nybegynder
05. januar 2007 - 11:06 Der er 7 kommentarer

select udfra timestamp

Hej

Jeg har en tabel med et felt angivet som timestamp hvor standardværdien sættes til current_timestamp.

Jeg har nu brug for at lave et udtræk baseret på en dato, men ikke afhængig af tidspunktet på dagen. 

Hvorledes formulerer jeg et MySQL udtryk der trækker alle informationer ud fra en tabel baseret på en dato i en "tid"-række, der indeholder et timestamp (og altså ikke tager højde for timer, minutter og sekunder)?

mvh mat
Avatar billede erikjacobsen Ekspert
05. januar 2007 - 13:03 #1
Du kan beregne timestamp for 2007-01-05 00:00:00 og for 2007-01-05 23:59:59 og hente det der ligger imellem de to.
Avatar billede mat Nybegynder
05. januar 2007 - 13:54 #2
Jeg gør sådan nu (i php);

$query_date = date('Y-m-d 00:00:00', $time);
$query_date_tomorrow = date('Y-m-d 00:00:00', $time+86400);

$user_query = mysql_query("SELECT * FROM min_tabel WHERE tid >= ('$query_date') AND tid <= ('$query_date_tomorrow')");

Hvor "$time" er en tid der sendes til siden.

Men jeg håbede bare der var noget lidt mere "elegant"?

mvh mat
Avatar billede showsource Seniormester
05. januar 2007 - 16:28 #3
SELECT FROM `min_tabel` WHERE FROM_UNIX_TIME(`tid`, '%Y-%m-%d') = CUR_DATE()
Avatar billede showsource Seniormester
05. januar 2007 - 16:30 #4
Hov,
FROM_UNIXTIME
Avatar billede showsource Seniormester
05. januar 2007 - 16:31 #5
Hmm, er det fredag elelr hva'?
CUR_DATE => CURDATE
Avatar billede showsource Seniormester
05. januar 2007 - 16:36 #6
SELECT FROM `min_tabel` WHERE FROM_UNIXTIME(`tid`, '%Y-%m-%d') = CURDATE()

Og så læste jeg engang et indlæg fra erik hvor han snakkede om at beregning i mysql ikke altid er bedre end at gøre det med f.eks. PHP

Men mere ved jeg heller ikke! :O)

Og spm. nr. kan jeg slet ikke huske.
Avatar billede kjulius Novice
07. januar 2007 - 03:02 #7
Det lyder for mig som om du ikke bruger UNIX timestamp, som jo gemmes i en integer, men derimod en "rigtig" timestamp type. I så fald burde du bare kunne skrive:

SELECT * FROM min_tabel WHERE DATE(min_timestamp) = CURDATE()
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester