Scripts
Datum in Nederlands vanuit SQL
De meeste mensen die met een datum in SQL werken willen deze natuurlijk netjes in het Nederlands weergeven zonder tussenkomst van PHP. Nu is het niet zo moeilijk om 'dd-mm-yyyy' te maken (dit kan met DATE_FORMAT), maar een uitgeschreven datum als 'maandag 02 januari 2006' wordt helaas nog te vaak onnodig met PHP gedaan. Bij deze de SQL oplossing. Deze oplossing heb ik in een forumtopic gepost maar lijkt me wel handig voor alle programmeurs.
datum-in-nederlands-vanuit-sql
( In dit geval: tabel "tabel" met veld "datum" type DATE of DATETIME )
[code]
SELECT
CONCAT(
(CASE DATE_FORMAT(datum, '%w')
WHEN '0' THEN 'zondag'
WHEN '1' THEN 'maandag'
WHEN '2' THEN 'dinsdag'
WHEN '3' THEN 'woensdag'
WHEN '4' THEN 'donderdag'
WHEN '5' THEN 'vrijdag'
WHEN '6' THEN 'zaterdag'
END),
' ',
(DATE_FORMAT(datum, '%d')),
' ',
(CASE DATE_FORMAT(datum, '%c')
WHEN '1' THEN 'januari'
WHEN '2' THEN 'februari'
WHEN '3' THEN 'maart'
WHEN '4' THEN 'april'
WHEN '5' THEN 'mei'
WHEN '6' THEN 'juni'
WHEN '7' THEN 'juli'
WHEN '8' THEN 'augustus'
WHEN '9' THEN 'september'
WHEN '10' THEN 'oktober'
WHEN '11' THEN 'november'
WHEN '12' THEN 'december'
END),
' ',
(DATE_FORMAT(datum, '%Y'))
) AS datum
FROM tabel
[/code]
Of in een testscriptje:
<?php
$sql = "
SELECT
CONCAT(
(CASE DATE_FORMAT(datum, '%w')
WHEN '0' THEN 'zondag'
WHEN '1' THEN 'maandag'
WHEN '2' THEN 'dinsdag'
WHEN '3' THEN 'woensdag'
WHEN '4' THEN 'donderdag'
WHEN '5' THEN 'vrijdag'
WHEN '6' THEN 'zaterdag'
END),
' ',
(DATE_FORMAT(datum, '%d')),
' ',
(CASE DATE_FORMAT(datum, '%c')
WHEN '1' THEN 'januari'
WHEN '2' THEN 'februari'
WHEN '3' THEN 'maart'
WHEN '4' THEN 'april'
WHEN '5' THEN 'mei'
WHEN '6' THEN 'juni'
WHEN '7' THEN 'juli'
WHEN '8' THEN 'augustus'
WHEN '9' THEN 'september'
WHEN '10' THEN 'oktober'
WHEN '11' THEN 'november'
WHEN '12' THEN 'december'
END),
' ',
(DATE_FORMAT(datum, '%Y'))
) AS datum
FROM tabel";
$query = mysql_query($sql) or trigger_error(mysql_error());
while ($row = mysql_fetch_assoc($query))
{
echo $row['datum'] . '<br>';
}
?>
Reacties
0