mysql中时间字段设置遇到的问题

 更新时间:2023年07月24日 09:26:20   作者:azhegps  
这篇文章主要介绍了mysql中时间字段设置遇到的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mysql中时间字段设置问题

案例【一】

今天写数据库脚本,创建数据库时,有一个字段是datetime类型的,想要设置默认时间为当前时间,

于是有了如下代码:

registerDate datetime NOT NULL DEFAULT NOW() COMMENT '注册时间'

执行之后报错

 Error Code: 1067. Invalid default value for 'registerDate'

PS:在mysql 5.6中,这种写法OK,之前的版本不支持这样的写法。

案例【二】

mysql一般在设置时间的时候也常用时间戳。timestamp类型

在执行mysql数据库时报错

CREATE TABLE `advert_schedule_time` (
  `advert_id` int(11) NOT NULL DEFAULT '0' COMMENT '广告id',
  `stime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '开始时间',
  `etime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '结束时间',
  `times` int(11) NOT NULL DEFAULT '0' COMMENT '投放次数',
  UNIQUE KEY `adverttime` (`advert_id`,`stime`,`etime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '广告时间排期表';

首先用下面的命令看下sql_mode

show variables like 'sql_mode';

如果查询的结果如下:

ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION

如果结果中含有NO_ZERO_IN_DATE, NO_ZERO_DATE

则执行下面的命令:

set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

mysql时间类型字段自动更新设置

alter table user modify column update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间';
alter table 表名 modify column 字段名 类型 NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘注释';

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql中使用replace替换某字段的部分内容

    mysql中使用replace替换某字段的部分内容

    这篇文章主要介绍了mysql中使用replace替换某字段的部分内容的方法,需要的朋友可以参考下
    2014-11-11
  • mysql语法时采用了双引号““的错误问题

    mysql语法时采用了双引号““的错误问题

    错误原因:使用双引号定义表名和列名导致MySQL报错,应使用反引号,修改方案:将双引号改为反引号,避免语法冲突,总结:在MySQL中,正确使用反引号引用标识符,确保SQL语句符合MySQL语法规则
    2024-10-10
  • mysql全连接和oracle全连接查询、区别及说明

    mysql全连接和oracle全连接查询、区别及说明

    这篇文章主要介绍了mysql全连接和oracle全连接查询、区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • mysql使用GROUP BY分组实现取前N条记录的方法

    mysql使用GROUP BY分组实现取前N条记录的方法

    这篇文章主要介绍了mysql使用GROUP BY分组实现取前N条记录的方法,结合实例形式较为详细的分析了mysql中GROUP BY分组的相关使用技巧,需要的朋友可以参考下
    2016-06-06
  • MySQL中批量删除指定前缀表的sql语句

    MySQL中批量删除指定前缀表的sql语句

    有时候我们在安装一些cms的时候,这些cms都是带表前缀的方便区分数据,但有时候我们测试完需要删除的时候又有别的前缀表就可以参考下面的方法
    2013-06-06
  • MySQL-8.0.26配置图文教程

    MySQL-8.0.26配置图文教程

    最近公司项目更换数据库版本,在此记录分享一下自己安装配置MySQL8.0版本的过程吧,本文通过图文并茂的形式给大家介绍的非常详细,对MySQL-8.0.26配置教程感兴趣的朋友跟随小编一起看看吧
    2021-12-12
  • Ubuntu与windows双系统下共用MySQL数据库的方法

    Ubuntu与windows双系统下共用MySQL数据库的方法

    ubuntu系统和windows系统双系统共用是用户喜欢使用的方式之一,而MySQL是一个小型关系型数据库管理系统,在Windows平台中常以WAMP方式搭配使用,在Linux平台中常以LAMP组合形式出现,下面的方法可以使得Ubuntu平台共用Windows平台中的MySQL数据库
    2012-01-01
  • 解析MSSQL跨数据库查询的实现方法

    解析MSSQL跨数据库查询的实现方法

    本篇文章是对MSSQL跨数据库查询的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Linux系统彻底删除Mysql的详细教程

    Linux系统彻底删除Mysql的详细教程

    我们在重新安装MySQL、或更新MySQL版本时,一定会遇到mysql数据残留(脏数据),或组件冲突等问题,下面这篇文章主要给大家介绍了关于Linux系统彻底删除Mysql的详细教程,需要的朋友可以参考下
    2023-02-02
  • MySQL表添加某一列和删除某一列的方法

    MySQL表添加某一列和删除某一列的方法

    MySQL是一种广泛使用的关系型数据库管理系统,它是一种开源的软件,由瑞典的MySQL AB公司开发的,这篇文章主要介绍了关于MySQL表添加某一列和删除某一列的sql语句,需要的朋友可以参考下
    2023-06-06

最新评论