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的差别在于:

  1. 日期存储范围不同【上面很明显能看到】
  2. 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;

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值