Omdat de meeste sql-vragen hier over MySQL gaan zal ik hier de code geven hoe e.e.a. te doen is in MySQL. Het is gebaseerd op versie 5.
In de eerste post wordt de vraag gesteld hoe je een nummer (01,02, enz) om kunt zetten naar een maand in de vorm tekst. Dit doe je zo:
PHP:
update tabel
set kolom2 = monthname(str_to_date(kolom1, '%m'));
Dit geeft de maand in tekst, zie ook het volgende voorbeeld:
PHP:
mysql> select monthname(str_to_date( '01' , '%m'));
+--------------------------------------+
| monthname(str_to_date( '01' , '%m')) |
+--------------------------------------+
| January |
+--------------------------------------+
1 row in set (0.00 sec)
Dan de laatste post van de TS. Hierin worden een aantal aanvullende dingen gevraagd.
- Een datumveld (kolom 1) omzetten naar tekst in de vorm van '01/01/2007' (kolom 2).
- Een datumveld (kolom 1) omzetten naar een nummeriek veld in de vorm van '01012007' (kolom 3).
- En een datumveld (kolom 1) omzetten naar maand in de vorm van tekst (kolom 4).
In 1 statement doe je dit zo:
PHP:
update tabel
set kolom2 = date_format( kolom1, '%d/%m/%Y' )
, kolom3 = date_format( kolom1, '%d%m%Y' )
, kolom4 = monthname( kolom1 )
;
Ter illustratie, zie het volgende voorbeeld:
PHP:
mysql> select date_format( curdate(), '%d/%m/%Y' ) kolom2
-> , date_format( curdate(), '%d%m%Y' ) kolom3
-> , monthname( curdate() ) kolom4
-> ;
+------------+----------+--------+
| kolom2 | kolom3 | kolom4 |
+------------+----------+--------+
| 20/05/2007 | 20052007 | May |
+------------+----------+--------+
1 row in set (0.00 sec)
Wanneer je de maand in het nederlands wilt zien, geef dan eerst de volgende opdracht:
PHP:
SET lc_time_names = 'nl_NL';
Ter illustratie, ook hier een voorbeeldje:
PHP:
mysql> SET lc_time_names = 'nl_NL';
Query OK, 0 rows affected (0.00 sec)
mysql> select date_format( curdate(), '%d/%m/%Y' ) kolom2
-> , date_format( curdate(), '%d%m%Y' ) kolom3
-> , monthname( curdate() ) kolom4
-> ;
+------------+----------+--------+
| kolom2 | kolom3 | kolom4 |
+------------+----------+--------+
| 20/05/2007 | 20052007 | mei |
+------------+----------+--------+
1 row in set (0.00 sec)
Dan nog een paar handige links mbt dit onderwerp:
Datum en tijd functies in MySQL
Taal settings
Mocht het niet over MySQL gaan, laat het dat even weten zodat mensen die verstand hebben van de software die je gebruikt je misschien kunnen helpen. Succes!