2017-09-19 14 views
0

次の表を作成しました。日付をDEFAULT NULLに設定しました。しかし、私は空の文字列をテーブルに挿入しようとします。私は間違いを起こすでしょう。空のフィールドを処理して日付に挿入する最良の方法は何ですか?私は日付の空のフィールドを処理するにはどうすればよいMySQL 5のデフォルトの日付はnullです。日付は挿入できません= ''なぜですか?

CREATE TABLE `testing` (
    `AUTOINC` double NOT NULL AUTO_INCREMENT, 
    `TST` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE 
CURRENT_TIMESTAMP, 
    `EMP_CODE` varchar(10) NOT NULL DEFAULT '', 
    `DT_JOIN` date DEFAULT NULL, 
    `DT_CONFIRM` date DEFAULT NULL, 
    `DT_RESIGN` date DEFAULT NULL, 
    `USER_ID` varchar(6) NOT NULL DEFAULT '', 
    `DATETIME` datetime DEFAULT NULL, 
    PRIMARY KEY (`AUTOINC`) 
) ENGINE=MyISAM AUTO_INCREMENT=126 DEFAULT CHARSET=utf8; 


insert into TMEMPLY (EMP_CODE,DT_JOIN,DT_CONFIRM,DT_RESIGN,USER_ID,DATETIME) 
values ('TEST','2017-09-19','','','BRO','2017-09-19 14:47:21') 

エラー

Incorrect date value: '' for column 'DT_CONFIRM' 

。たとえば、ユーザーが入力してフォームの日付の空フィールドを残していないとします。最善のアプローチは何ですか?

答えて

1

問題は、datetime列に有効な日付またはnullの値を受け入れることです。したがって、''(空白)を渡すのではなく、既に''nullと等しくないことがわかっているので、nullをここに渡します。クエリは次のようなものです:

insert into TMEMPLY (EMP_CODE,DT_JOIN,DT_CONFIRM,DT_RESIGN,USER_ID,DATETIME) 
values ('TEST','2017-09-19', null, null,'BRO','2017-09-19 14:47:21') 
関連する問題