我有mysql表如下
CREATE TABLE `installments` (
`id` int(11) NOT NULL,
`order` int(11) NOT NULL,
`payment_date` date DEFAULT NULL,
`cost` int(11) NOT NULL,
`is_paid` int(11) NOT NULL DEFAULT '0',
`is_removed` int(11) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
当我运行insert statment
时 INSERT INTO installments (`order`,payment_date,cost) VALUES (1,STR_TO_DATE('5-30-2017','%m-%d-%y'),14
给了我 数据截断:截断的日期值不正确:' 5-30-2017
任何想法如何解决这个问题
答案 0 :(得分:1)
更改此
INSERT INTO installments (`order`,payment_date,cost) VALUES (1,STR_TO_DATE('5-30-2017','%m-%d-%y'),14
要
INSERT INTO installments (`order`,payment_date,cost) VALUES (1,STR_TO_DATE('5-30-2017','%m-%d-%Y'),14)
答案 1 :(得分:0)
您使用的date format预期月份将使用前导零(01-12)进行格式化。你想要%c
,它会降低前导零:
INSERT INTO installments (`order`,payment_date,cost) VALUES
(1,STR_TO_DATE('5-30-2017','%c-%d-%Y'),14);