/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[mysql 3.23 nt] Tidsberegninger
Fra : Jesper Stocholm


Dato : 14-04-03 15:27

Jeg har en tabel med en DateTime attribut, hvori data indsættes med
"Now()"-metoden.

Jeg vil gerne kunne udtrække de rækker, der er mindre end 7 dage gamle. I
Access ville jeg bruge DateDiff, men den findes så vidt jeg kan se ikke til
mySQL. Hvordan gør jeg det i stedet ?

pft,



--
Jesper Stocholm - http://stocholm.dk - http://asp-faq.dk
Skriv venligst under det du svarer på og skær det overflødige væk.
Se evt hvorfor på http://www.usenet.dk/netikette/citatteknik.html
Svar venligt til gruppen og ikke til mig privat !

 
 
Jesper Krogh (14-04-2003)
Kommentar
Fra : Jesper Krogh


Dato : 14-04-03 15:49

I dk.edb.database, skrev Jesper Stocholm:
> Jeg har en tabel med en DateTime attribut, hvori data indsættes med
> "Now()"-metoden.
>
> Jeg vil gerne kunne udtrække de rækker, der er mindre end 7 dage gamle. I
> Access ville jeg bruge DateDiff, men den findes så vidt jeg kan se ikke til
> mySQL. Hvordan gør jeg det i stedet ?

Hvis det nu er en længde 14 du har så den står som
20030414164715 i databasen så laver du bare en
select * from table where felt > now - 7*1000000;

Så har du alle der er nyere end en uge.

--
../Jesper Krogh, jesper@krogh.cc
Jabber ID: jesper@jabber.krogh.cc
PGP Key: 0x4F57020E http://krogh.cc/public.asc

Mads Lie Jensen (14-04-2003)
Kommentar
Fra : Mads Lie Jensen


Dato : 14-04-03 17:11

On Mon, 14 Apr 2003 14:49:24 +0000 (UTC), Jesper Krogh <jesper@krogh.cc>
wrote:

>> Jeg vil gerne kunne udtrække de rækker, der er mindre end 7 dage gamle. I
>> Access ville jeg bruge DateDiff, men den findes så vidt jeg kan se ikke til
>> mySQL. Hvordan gør jeg det i stedet ?
>
>Hvis det nu er en længde 14 du har så den står som
>20030414164715 i databasen så laver du bare en
>select * from table where felt > now - 7*1000000;

Nu er jeg ikke helt sikker på hvordan mysql opfører sig mht. at
sammenligne tal med datoer, men jeg tror ikke ovenstående virker......

Mere rigtigt vil det være at bruge f.eks TO_DAYS():

SELECT something FROM tbl_name
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 7;

(Sakset fra mysql-manualen:
http://www.mysql.com/doc/en/Date_and_time_functions.html )

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
Lær af andres fejl
- du lever alligevel ikke længe nok til selv at prøve dem alle.

Peter Brodersen (14-04-2003)
Kommentar
Fra : Peter Brodersen


Dato : 14-04-03 17:33

On Mon, 14 Apr 2003 14:26:33 +0000 (UTC), Jesper Stocholm
<jespers@stocholm.invalid> wrote:

>Jeg vil gerne kunne udtrække de rækker, der er mindre end 7 dage gamle. I
>Access ville jeg bruge DateDiff, men den findes så vidt jeg kan se ikke til
>mySQL. Hvordan gør jeg det i stedet ?

Jeg foretrækker følgende af hensyn til læsbarheden:

.... WHERE tidsfelt > NOW() - INTERVAL 7 DAY

--
- Peter Brodersen

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste