INSERT文で、DATE型の列に日付を挿入する場合は、「2014-04-16」だけでなく「2014-4-6」といったように「0」を省略しても正常に挿入されます。
1 2 3 4 5 6 7 8 9 10 11 12 |
mysql> INSERT INTO t1 values(1,"2014-04-06"); Query OK, 1 row affected (0.21 sec) mysql> INSERT INTO t1 values(2,"2014-4-6"); -- 「yyyy-m-d」形式で挿入することができます。 Query OK, 1 row affected (0.06 sec) mysql> SELECT * FROM t1; +------+------------+ | col1 | col2 | +------+------------+ | 1 | 2014-04-06 | | 2 | 2014-04-06 | +------+------------+ 4 rows in set (0.07 sec) |
しかし、cpimportでデータをロードする場合は「0」を省略することができません。必ず「yyyy-mm-dd」形式で挿入してください。省略した場合は該当データは「NULL」になります。
1 2 3 |
ロードするcsvファイル 1|2014-04-06 2|2014-4-6 |
cpimportを実行してもエラーにはなりません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# cpimport test t1 -S /tmp/test.csv Locale is : ja_JP.UTF-8 Using table OID 3465 as the default JOB ID Input file(s) will be read from : /root Job description file : /usr/local/Calpont/data/bulk/tmpjob/test_t1_D20140416_T190846_Job_3465.xml Log file for this job: /usr/local/Calpont/data/bulk/log/Job_3465.log 2014-04-16 19:08:46 (19106) INFO : successfully loaded job file /usr/local/Calpont/data/bulk/tmpjob/test_t1_D20140416_T190846_Job_3465.xml 2014-04-16 19:08:46 (19106) INFO : Job file loaded, run time for this step : 0.295116 seconds 2014-04-16 19:08:46 (19106) INFO : PreProcessing check starts 2014-04-16 19:08:46 (19106) INFO : input data file /tmp/test.csv 2014-04-16 19:08:46 (19106) INFO : PreProcessing check completed 2014-04-16 19:08:46 (19106) INFO : preProcess completed, run time for this step : 0.0121529 seconds 2014-04-16 19:08:46 (19106) INFO : No of Read Threads Spawned = 1 2014-04-16 19:08:46 (19106) INFO : No of Parse Threads Spawned = 3 2014-04-16 19:08:46 (19106) INFO : For table test.t1: 2 rows processed and 2 rows inserted. 2014-04-16 19:08:46 (19106) WARN : Column test.t1.col2; Number of invalid dates replaced with null: 1 2014-04-16 19:08:47 (19106) INFO : Bulk load completed, total run time : 1.31249 seconds |
「yyyy-m-d」形式で挿入した2行目はNULLになっています。
1 2 3 4 5 6 7 8 |
mysql> SELECT * FROM t1; +------+------------+ | col1 | col2 | +------+------------+ | 1 | 2014-04-06 | | 2 | NULL | +------+------------+ 2 rows in set (0.07 sec) |
参考
DATE型に関しては、参考情報として以下の記事もご確認下さい。日付型のデフォルト値について
DATE型の有効範囲の変更について