Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[MySQL] verschil in datum

Pagina: 1
Acties:

  • Raem
  • Registratie: Oktober 2005
  • Laatst online: 00:44
Ik wil op mijn website alleen nieuwsberichten laten tonen die niet ouder zijn dan 30 dagen. Ik dacht dat gemakkelijk in mijn query te kunnen doen en had even het volgende getest:

code:
1
SELECT current_date() - datum FROM nieuws_netwerk


Wanneer datum (uit de database) binnen dezelfde maand valt rekent hij het gewoon goed uit. Stel de datum in de database 2008-10-01 is, dan is het verschil met vandaag 22. Wanneer ik de datum echter nog 1 dag terug zet waardoor hij de vorige maand in gaat (2008-09-30) is het verschil met vandaag ineens 93.

Waar haalt hij dit getal vandaan?

Of is er een andere (betere) manier om het verschil te berekenen. Datum is overigens een date() veld. Wanneer ik timestamp() gebruik en current_timestamp in de SQL kreeg ik een iets uitgebreider getal namelijk: 93162913.

https://psnprofiles.com/RaemNL


  • Redshark
  • Registratie: Mei 2002
  • Laatst online: 14-11 13:52
Date diff?

SQL:
1
2
3
4
mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
        -> 1
mysql> SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31');
        -> -31


http://dev.mysql.com/doc/...ns.html#function_datediff

  • remmelt
  • Registratie: Januari 2001
  • Laatst online: 09-04 12:25
Kijk hier eens:
http://dev.mysql.com/doc/...e-and-time-functions.html

En dan met name de DATEDIFF functie! Daar moet het mee lukken.

  • cariolive23
  • Registratie: Januari 2007
  • Laatst online: 18-10-2024
Gebruik een INTERVAL:
SQL:
1
2
3
4
5
6
SELECT 
  * 
FROM 
  nieuws_netwerk 
WHERE
  datum > ( CURRENT_DATE - INTERVAL 30 DAY )

Ps. i.p.v. een * in je query benoem je uiteraard keurig alle benodigde kolomnamen. Dat is sneller en handiger in de rest van je code.

[ Voor 3% gewijzigd door cariolive23 op 26-10-2008 10:13 ]