Mailinglisten-Archive |
Hallo Welt, Hallo Neukölln,
Am Sonntag, 4. März 2001 22:58 schrieb Oliver diepolder:
> wie lautet dein Insert-Statement?
> Das Jahr musst Du schon in irgendeiner Art und Weise selber angeben.
> Wenn bei Dir im Selectstatement 2000 rauskommt, deutet das darauf hin
> das Du 0 oder NULL (also gar keinen Wert) uebergeben hast. Dieser wird
> dann nach der Regel fuer 2-stellige Jahreszahlen in 2000 umgewandelt.
> 99 = 1999 , 00 = 2000;
Laut Handbuch ist 0 ohne Hochkommas ein illegaler Wert, der zu 0000 führt,
der _String_ '0' wird zu 2000 gewandelt.
> Du musst bei insert schon irdenwas mitgeben z.B.:
> create table test (Jahr YEAR);
> insert into test ( now()); sollte funktionieren.
Das funktioniert wie erwartet. Allerdings erwarte ich auch, dass MySQL einen
falschen oder keinen Wert in den als default definierten Wert umwandelt. Das
tut es in einem YEAR-Feld _nicht_:
mysql> create table test(jr year default 'now()');
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test values (0),('0'),(1),('1'),
('hier muesste der defaultwert erscheinen'),
(98),(99),(now());
Query OK, 8 rows affected (0.01 sec)
Records: 8 Duplicates: 0 Warnings: 2
mysql> select * from test;
+------+
| jr |
+------+
| 0000 |
| 2000 |
| 2001 |
| 2001 |
| 2000 | (...tut er aber nicht)
| 1998 |
| 1999 |
| 2001 |
+------+
8 rows in set (0.01 sec)
( Ver 8.13 Distrib 3.23.32, for pc-linux-gnu on i686 )
--
Ahoi
H.
---------------------------------------------------------------
Herbert Piechot
piechot_(at)_fh-potsdam.de
HÖRDAT, die Hörspieldatenbank: http://www.hoerdat.de/
---------------------------------------------------------------
..
---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive