有代理资源网

热门关键词: 
旗下栏目:MsSql数据库Access数据库Redis数据库MongoDBPostgreSQLSQLitemssql2005数据库mssql2008数据库DB2数据库oracle数据库mariadb数据库 帮助
您现在的位置:首页 > 数据库 > Mysql数据库 > 正文

Mysql的各种时间函数

所属栏目: Mysql数据库 | 发布时间:2017-03-20 09:39:38 | 小编:橙子 | #我要评论#

Mysql的各种时间函数

 

mysql 的时间函数很丰富

1.mysql 查询时间中秒不为0的过滤条件

Sql代码  

SECOND(t.file_time)  

 2.当前时间

Sql代码  

now()   

 3.一天前

Sql代码  

select DATE_SUB(curdate(), INTERVAL 1 DAY)  

 4.timestamp默认值

mysql timestamp字段的怪异问题

创建表语句:

Sql代码  

CREATE  TABLE `testtimestamp` (  
  `id` INT NOT NULL AUTO_INCREMENT,  
  `file_time` TIMESTAMP NOT NULL ,  
  `scan_time` TIMESTAMP NULL ,  
  `created` TIMESTAMP NOT NULL ,  
  `modified` TIMESTAMP NOT NULL ,  
  PRIMARY KEY (`id`)  
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;  
 执行后,file_time 的默认值为CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
scan_time 的默认值为NULL
created 和 modified的默认值 为'0000-00-00 00:00:00'

很奇怪的问题,创建语句的第一个timestamp字段为CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

而且file_time在update时如果set组中无则会默认为now() !!!???

这样会导致有默认值,且如果update语句中无此字段,会默认填充当前时间。

修改类型:

Sql代码  

ALTER TABLE `database`.`tablename` CHANGE COLUMN `columname` `columname` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'  ;



热点聚合:MySQL

看过本文的人还看过

本周热门

关于有代理资源网-版权声明-广告服务-发展历程-常见问题-联系我们- TAG标签-网站地图

本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
侵权删帖/违法举报/投稿联系邮箱:duomu@vip.qq.com

Copyright © 2014-2018 有代理资源网 版权所有 鄂ICP备14013235号-8  鄂公网安备 42090202000244号  

Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。