Heim >Datenbank >MySQL-Tutorial >Mysql的各种时间函数_MySQL

Mysql的各种时间函数_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-01 13:34:591164Durchsuche

bitsCN.com

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'  ;  

 

bitsCN.com
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn