问题最近遇到一个这样的问题,新建数据库表的时候 提示 错误如下Invalid default value for 'created_time' timestamp field语句如下`created_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '插入时间' 错误大致的意思 就是不能为 timestamp字段设置指定的默认值,也就是语句中的 0000-00-00 00:00:00,但是很奇怪在本地就可以,为什么线上服务器就不行了?本地数据库版本:5.5.46 上线数据库版本:5.7.17后来经过查询文档(文档地址)发现,其实从5.6.17这个版本就默认设置了不允许插入 0 日期了,术语是 NO_ZERO_IN_DA
  最近在做项目的过程中发现了一个问题数据库表 test  有个字段是 target_id  int(11),这个字段可能为零使用如下查询select * from test where target_id = ''; select * from test where target_id = 'abcd';这样,所有target_id = 0 的结果都会出来,为什么?查阅资料,这是类型转化导致的,在mysql中  0  意味着 任何字符串其实不是mysql特有了,在php中有个intval 方法将字符串转化为数字intval("abcd");//0 intval("99a");//99 intval("a99");//0 intval("99");//99我相信大家应该都明白了吧,哈哈
  • 微信公众号 微信小程序
  • 微信机器人
  • 群1:1046090432
  • 群2:585567981