本文主要是介绍Mysql中CURRENT_TIMESTAMP,CURRENT_DATE,CURRENT_TIME,now(),sysdate()各项值的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
CURRENT_TIMESTAMP,CURRENT_DATE,CURRENT_TIME,now(),sysdate()各项值的区别,我们可以通过在终端下,查看结果就能知道:
SELECT CURRENT_TIME, CURRENT_DATE, CURRENT_TIMESTAMP, now(), sysdate();
比如我们要对某表插入数据,这个表add_time字段是datetime类型,那么可以这么做:
INSERT INTO app01_book (title, author, add_time) VALUES ('三重门', '韩寒', CURRENT_TIMESTAMP), ('幻城', '郭敬明', CURRENT_TIMESTAMP);
拓展一下
在Date和Time类型中,有这么三个可选的字段时间类型。** The DATE, DATETIME, and TIMESTAMP Types **
他们三个有一些区别,主要是格式显示和日期范围上:
DATE:类型用在日期部分而不是时间部分。mysql获取和显示DATE值的格式为:YYYY-MM-DD,它支持的日期范围:'1000-01-01' to '9999-12-31'DATETIME:与DATE不同,它可以显示日期和时间两部分。mysql可以获取和显示DATETIME的格式为:YYYY-MM-DD hh:mm:ss,它支持的范围:'1000-01-01 00:00:00' to '9999-12-31 23:59:59'TIMESTAMP:与DATETIME类似,它可以显示日期和时间两部分。它的格式为:YYYY-MM-DD hh:mm:ss,它支持的范围:'1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC。
从上面我们可以看到DATETIME和TIMESTAMP的差别在于:
- 日期存储范围不同【上面很明显能看到】
- TIMESTAMP使用UTC时区,而DATETIME基本原样输出【也就是存储方式不同】。
总的来说,差别不大。对于跨时区的业务,TIMESTAMP更为合适。
注意mysql和mariadb在设置创建时间与更新时间默认值为当前时间时应该用CURRENT_TIMESTAMP。
例如:
CREATE TABLE `test_current_timestamp_01` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL,
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
这篇关于Mysql中CURRENT_TIMESTAMP,CURRENT_DATE,CURRENT_TIME,now(),sysdate()各项值的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!