在mysql插入中使用STR_TO_Date()

时间:2017-06-23 17:57:52

标签: mysql

我有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

任何想法如何解决这个问题

2 个答案:

答案 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);