selecteren op datum

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- -

- -

29/06/2006 12:27:00
Quote Anchor link
Ik wil graag records selecteren op datum, waarbij ik alle records wil hebben waar kolom 'datum' een datum in een bepaalde maand bevat, uiteraard ook alleen die van een bepaald jaar. Welke query moet ik daarvoor nemen?

Ik doe nu dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

$sql
= "SELECT * FROM tabel WHERE datum LIKE '".$jaar."-".$maand."%'";

?>


Maar hierbij kom ik in de problemen als de maand kleiner is dan 10 en niet met een 0 begint, dan selecteerd hij namelijk geen records meer...

Edit:
399 posts...
Gewijzigd op 01/01/1970 01:00:00 door - -
 
PHP hulp

PHP hulp

17/11/2024 08:41:09
 
Robert Deiman

Robert Deiman

29/06/2006 12:32:00
Quote Anchor link
$sql = "SELECT * FROM tabel WHERE datum LIKE '".$jaar."-".$maand."-%'";

Let op het - teken wat nu voor de % staat, dan krijg je dus:

WHERE datum LIKE 2006-1-%

Zou moeten werken dacht ik zo.
 
- -

- -

29/06/2006 12:37:00
Quote Anchor link
werkt niet
 
Robert Deiman

Robert Deiman

29/06/2006 12:47:00
Quote Anchor link
Hoezo werkt het niet?
Wat krijg je voor error, en als je je query echo't, wat krijg je dan?
 
- -

- -

29/06/2006 12:56:00
Quote Anchor link
Geen errors, maar hij selecteerd niks.

Dit is de query:

SELECT * FROM tabel WHERE datum LIKE '2006-6-%' ORDER BY datum

Maar hij zou moeten zijn:

SELECT * FROM agenda WHERE datum LIKE '2006-06-%' ORDER BY datum

(die 0 voor de 6)

Het is voor een agenda waar je met vorige/volgende een andere maand kunt pakken, die maand gaat dan in de get-variabelen. Als ik 06 in de var stop doet hij het, maar als ik 06 min 1 doen komt er 5 uit en daarmee selecteert hij niks.
 
Robert Deiman

Robert Deiman

29/06/2006 13:00:00
Quote Anchor link
Oh, je hebt er zelf wel 06 in staan, had ik verkeerd begrepen..

if(strlen($maand) == 1){
$maand=0.$maand;
}

werkt wel zo, als het goed is.. maar verder...
 
Joop

joop

29/06/2006 13:03:00
Quote Anchor link
gebruik hier de mysql date en time functies voor
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
 
- -

- -

29/06/2006 13:11:00
Quote Anchor link
Ja, maar welke datumfunctie :S Ik word echt niks wijzer uit zo'n berg informatie :$

Edit:
Ik heb hem:

SELECT * FROM tabel WHERE DATE_ADD(datum, INTERVAL 1 MONTH) > ".strftime("%Y%m%d%H%M%S", mktime(00,00,00,$maand,01,$jaar))." ORDER BY datum

Gewijzigd op 01/01/1970 01:00:00 door - -
 
- -

- -

29/06/2006 13:48:00
Quote Anchor link
Hmm, ik dacht hem te hebben (zie vorige post), maar hiermee neemt ie alle dingen van deze maand en later en die van de maand ervoor.

edit: nu heb ik dit:

SELECT datum FROM tabel WHERE DATE_ADD(datum, INTERVAL 0 MONTH) > ".strftime("%Y%m%d%H%M%S", mktime(00,00,00,$maand,01,$jaar))." ORDER BY datum

Daarmee neemt ie van deze maand en later.
Gewijzigd op 01/01/1970 01:00:00 door - -
 
Frank -

Frank -

29/06/2006 14:12:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
  datum
FROM
  tabel
WHERE
  YEAR(datum) = YEAR(CURDATE())
AND
  MONTH(datum) = MONTH(CURDATE())
ORDER BY
  datum ASC

Maak gebruik van de functies YEAR en MONTH, dat vind ik zelf veel handiger.
 
- -

- -

29/06/2006 14:22:00
Quote Anchor link
Ok, ik heb nu dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
    *
FROM
    tabel
WHERE
    YEAR(datum) = ".$jaar."
AND
    MONTH(datum) = ".$maand."
ORDER BY
    datum


Zo werkt het perfect. Bedankt iedereen!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.