akretschmer
Datenbank-Guru
- Beiträge
- 10.371
Man beachte was ich tue, und versuche bitte mir zu erklären, was hier passiert. Wer das schafft, bekommt einen virtuellen Bonbon, also strengt Euch an!
Welche Magie steckt hier dahinter, daß die Spalte Datum nach dem ersten Insert ein nicht eingegebenes 0000-00-00 anzeigt, und nach dem Update der anderen Spalte plötzlich den korrekten wert? Wie krank bitte ist das denn, oder hab ich komplett was verpeilt?
Okay, Version ist nicht ganz frisch, 5.0.75.
Kann das mal jemand nachvollziehen oder gar erklären?
geht übrigens weiter:
Ich glaub, ich muß meine Vorurteile gegen MySQL überarbeiten: es ist NOCH SCHLIMMER, als angenommen.
Andreas
Code:
mysql> create table lacido (datum timestamp);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into lacido (datum) values ('1362256218');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select * from lacido;
+---------------------+
| datum |
+---------------------+
| 0000-00-00 00:00:00 |
+---------------------+
1 row in set (0.00 sec)
mysql> alter table lacido add column d datetime;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from lacido;
+---------------------+------+
| datum | d |
+---------------------+------+
| 0000-00-00 00:00:00 | NULL |
+---------------------+------+
1 row in set (0.00 sec)
mysql> update lacido set d = from_unixtime(datum);
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from lacido;
+---------------------+---------------------+
| datum | d |
+---------------------+---------------------+
| 2013-03-02 21:35:38 | 1970-01-01 01:00:00 |
+---------------------+---------------------+
1 row in set (0.00 sec)
mysql>
Welche Magie steckt hier dahinter, daß die Spalte Datum nach dem ersten Insert ein nicht eingegebenes 0000-00-00 anzeigt, und nach dem Update der anderen Spalte plötzlich den korrekten wert? Wie krank bitte ist das denn, oder hab ich komplett was verpeilt?
Okay, Version ist nicht ganz frisch, 5.0.75.
Kann das mal jemand nachvollziehen oder gar erklären?
geht übrigens weiter:
mysql> select * from lacido;
+---------------------+---------------------+
| datum | d |
+---------------------+---------------------+
| 2013-03-02 21:35:38 | 1970-01-01 01:00:00 |
+---------------------+---------------------+
1 row in set (0.00 sec)
mysql> update lacido set d = from_unixtime(datum);
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from lacido;
+---------------------+------+
| datum | d |
+---------------------+------+
| 2013-03-02 21:46:04 | NULL |
+---------------------+------+
1 row in set (0.00 sec)
Ich glaub, ich muß meine Vorurteile gegen MySQL überarbeiten: es ist NOCH SCHLIMMER, als angenommen.
Andreas