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