Hallo,

Ik heb een datumveld in mijn database waarin ik een (uiteraard) datum wegschrijf. Dit doe ik als volgt:
<?php
$sql = "INSERT INTO agendav2
(datum)
VALUES
('".$_GET['jaar']."-".$_GET['maand']."-".$_GET['dag']."')";
?>
$_GET['jaar']."-".$_GET['maand']."-".$_GET['dag'] is het volgende formaat als de datum vandaag zou zijn:

2007-5-2

Deze schrijft hij weg als :

2007-05-02, das dus ook goed

Maar:
Als ik nu op een datum de datumwaarden in GET wil vergelijken in de data in mijn database mis ik dus in mijn GET-vars de nullen... Hoe kan ik dan tóch vergelijken? Ik snap niet veel van hoe te werken met DATE functies in SQL... wie kan mij hiermee helpen?
Ik heb het nu zo gedaan:
<?php
$laatste = mktime (0,0,0,$_GET['maand'],$dayNum,$_GET['jaar']);
$datumsql = strftime($_GET['jaar']."-%m-%d", $laatste);

$sqlafspr = "
SELECT
*
FROM
agendav2
WHERE
datum LIKE '".$datumsql."' AND
soort LIKE 'verjaardag' AND
LOWER(toevoeger) LIKE '".strtolower($_SERVER['REMOTE_USER'])."' OR 'iedereen'
" or trigger_error(mysql_error());

$rsafspr = mysql_query($sqlafspr) or trigger_error(mysql_error());
while ($rowafspr = mysql_fetch_array($rsafspr)) {
echo '<td>'.$rowafspr['afspraak'].'</td>';
}
?>

Dit zou moeten werken, maar dat doet het dus niet.. :)
Wat doe ik verkeerd?
Wat je zou kunnen doen is dit:

<?
if(strlen($_GET['jaar'] == 1))
{
$jaar ="0".$_GET['jaar'];
}
else
{
$jaar = $_GET['jaar'];
}
?>


Er is ook wel een functie voor maar kan er zo snel even niet op komen.

[edit]
<?
$jaar = printf("%02d", $_GET['jaar']);
?>
[/edit]
Ik heb de datum al goed geconverteerd, daar geeft hij nu ook geen problemen meer mee :) maar de rest van de queryis geloof ik niet goed, en ik weet niet wát er dan verkeerd is.. :)
Voor het opmaken van een datum gebruik je DATE_FORMAT in MySQL. Je kan dan een datum zo opmaken dat er geen voorloopnullen zijn.

SELECT 
   kolom 
FROM 
   tabel 
WHERE 
   DATE_FORMAT(datumkolom,'%Y-%c-%e') = 'hier de datum uit je get'
echo je query anders even
Ah idd :) met DATE-FORMAT gaat het wel
Dankjewel Robert!
raar, wat ik heb komt toch op hetzelfde neer?

Reageren