kolommen copieren

Status
Niet open voor verdere reacties.

nojat

Gebruiker
Lid geworden
26 aug 2004
Berichten
119
hallo,

ik heb in een tabel twee kolommen
in de eerste staat 01 ,02 03 enz

dit wi ik uitlezen en daarna vertalen naar 01 is januari 02 is Februari en plaatsen in de tweede kolom

wie weet hoe ik zo'n script moet schrijven ??

alvast bedankt

nojat
 
Wil je dit puur en alleen in SQL gaan schrijven of gebruik je ook PHP?
 
Misschien een simpele vraag maar waarom zet je ze er niet gewoon bij?

Maanden veranderen nooit, er komt niet ineens een nieuwe maand bij dus kun je ze net zo goed er zelf al neer zetten.
 
Misschien een simpele vraag maar waarom zet je ze er niet gewoon bij?

Maanden veranderen nooit, er komt niet ineens een nieuwe maand bij dus kun je ze net zo goed er zelf al neer zetten.

volgens mij moet het zoiets zijn

select kolom a insert into kolom B met de nodige condities

maar deze vraag wil ik graag beantwoord hebben door iemand die weet wat sql is

Groetjes nojat
 
maar deze vraag wil ik graag beantwoord hebben door iemand die weet wat sql is

Refereer je hiermee naar mij? Als dat zo is dan vraag ik je om even in de PHP sectie te kijken en dan nog eens te zeggen dat ik niet weet wat SQL is...

Example 4-18. Inserting values from another table

booktown=# INSERT INTO books (id, title, author_id, subject_id)
booktown-# SELECT nextval('book_ids'), title, author_id, subject_id
booktown-# FROM book_queue WHERE approved;
INSERT 0 2

Ik denk dat je zoiets bedoelt? Maar zoals ik al zei het is onzin om dit een script te laten doen. Maanden veranderen nooit dus kun je ze er net zo goed zelf bij zetten.
 
Refereer je hiermee naar mij? Als dat zo is dan vraag ik je om even in de PHP sectie te kijken en dan nog eens te zeggen dat ik niet weet wat SQL is...



Ik denk dat je zoiets bedoelt? Maar zoals ik al zei het is onzin om dit een script te laten doen. Maanden veranderen nooit dus kun je ze er net zo goed zelf bij zetten.

Sorry misschien ben ik niet duidelijk genoeg geweest met de vraagstelling

hetgeen ik wil is:

ik heb een kolom die 2000 rijen heeft met byv 12/04/2005 enz het is een data kolom

nu wil ik deze data kopieeren naar een var kolom maar het moet 12/04/2005 blijven

en nog een kopie naar een nummerieke kolom die 12042005 moet worden

en dan nog een kolom waar 04 wordt vertaald naar het woord April

Ik denk dat je mij nu beter begrijpt.

Alvast bedankt voor de reactie en graag zie ik de script hoe dit te doen is

Nojat
 
Laatst bewerkt:
In PHP zou je het zo op kunnen lossen, maar ik weet niet of je in SQL ook if-statements en dergelijke kunt invoeren...

Welke SQL server gebruik je trouwens? MySQL?
 
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!
 
He zeg hartelijk dank
dit is wat ik nodig had

Gr. Nojat


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!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan