2 varchar zu einem daytime verbinden

2 varchar zu einem daytime verbinden

am 16.03.2006 22:49:50 von Hans Winkler

In der Tabelle habe ich die Spalten date (varchar) und time (varchar)
die ich zu einer Spalte daytime(datetime) verbinden möchte.
UPDATE xy SET daytime='date'+'time' ersetzt zwar das datum, nicht aber
die Zeit. In den einzelnen Spalten liegen die Daten als Text in
folgender Weise vor: YYY-MM-DD und HH:MM:SS

Hans

Re: 2 varchar zu einem daytime verbinden

am 16.03.2006 23:24:49 von Johannes Vogel

Hi Hans

Hans Winkler wrote:
> In der Tabelle habe ich die Spalten date (varchar) und time (varchar)
> die ich zu einer Spalte daytime(datetime) verbinden möchte.
> UPDATE xy SET daytime='date'+'time' ersetzt zwar das datum, nicht aber
> die Zeit. In den einzelnen Spalten liegen die Daten als Text in
> folgender Weise vor: YYY-MM-DD und HH:MM:SS

Keine Ahnung, was das obige UPDATE-Statement soll. Aber eigentlich
kannst du das relativ einfach über concat:

update xy set daytime = concat(date,' ',time);

Eigentlich würde das concat einen String zurückgeben. Da du aber daytime
vorher als datetime klassifiziert hast, wird dieser String automatisch
umgewandelt abgespeichert.

----------------8<-------------------------------------------------
mysql> create table test (
date varchar(10),time varchar(10),daytime datetime);
mysql> insert into test values
('2005-10-02','10:00:01',null),
('2005-11-01','11:01:00',null);
mysql> update test set daytime = concat(date,' ',time);
mysql> select * from test;
+------------+----------+---------------------+
| date | time | daytime |
+------------+----------+---------------------+
| 2005-10-02 | 10:00:01 | 2005-10-02 10:00:01 |
| 2005-11-01 | 11:01:00 | 2005-11-01 11:01:00 |
+------------+----------+---------------------+
----------------8<-------------------------------------------------

HTH, Johannes

Re: 2 varchar zu einem daytime verbinden

am 17.03.2006 08:14:21 von Hans Winkler

Johannes Vogel schrieb:
> Hi Hans
>
> Hans Winkler wrote:
>> In der Tabelle habe ich die Spalten date (varchar) und time (varchar)
>> die ich zu einer Spalte daytime(datetime) verbinden möchte.
>> UPDATE xy SET daytime='date'+'time' ersetzt zwar das datum, nicht aber
>> die Zeit. In den einzelnen Spalten liegen die Daten als Text in
>> folgender Weise vor: YYY-MM-DD und HH:MM:SS
>
> Keine Ahnung, was das obige UPDATE-Statement soll. Aber eigentlich
> kannst du das relativ einfach über concat:
>
> update xy set daytime = concat(date,' ',time);

Das hat in der Tat geholfen, vielen Dank. Die Spalten stammen aus dem
einem eigenen Verzeichnis, das mit VisualBasic ausgelesen wird. Die
Datunmsspalte hat dort das Format TT.MM.YYYY HH:MM:SS. Natürlich läßt
sich die Datumsspalte auch umschreiben in YYYY....etc.,
merkwürdigerweise wurde dann aber beim umwandeln in eine sql gerechte
Textform die Zeit auf 00:00:00 gesetzt. Daher habe ich Tag und Zeit
getrennt und suchte eine Möglichkeit, diese wieder zu vereinigen. Höchst
umständlich.

Hans