问答详情
源自:4-9 DAO层单元测试编码和问题排查(下)

这样的报错内容

 Error attempting to get column 'create_time' from result set.  Cause: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp

; ]; Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp; nested exception is java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp


提问者:pert 2020-05-10 20:47

个回答

  • JA_JA
    2020-05-18 20:42:42

    CREATE TABLE success_killed(
       `seckill_id` BIGINT NOT NULL COMMENT '秒杀商品ID',
       `user_phone` BIGINT NOT NULL COMMENT '用户手机号',
       `state` TINYINT NOT NULL DEFAULT -1 COMMENT '状态标识:-1:无效 0:成功 1:已付款 2:已发货',
        `create_time` TIMESTAMP NOT NULL DEFAULT  CURRENT_TIMESTAMP  COMMENT '创建时间',
        PRIMARY KEY (seckill_id,user_phone),/*联合主键*/
       KEY idx_create_time(create_time)
    )ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='秒杀成功明细表';
    create_time要设置默认值

  • JA_JA
    2020-05-18 20:04:28

    创建秒杀成功表的时候有create_time这个属性,但是在在插入记录insertSuccessKilled()时候没有涉及create_time,因此create_time是空值,导致queryByIdWithSeckill()测试失败(sk.create_time为空)。

    我三月份遇到这个问题,还没解决。。。。