datetime与timestamp的区别

datetime默认值为null,而timestamp的默认值不为null,为系统当前时间(current_timestatmp)。如果不做特殊处理,且update没有指定该列更新,则默认更新为当前时间。
datetime占用8个字节,timestamp占用4个字节。timestamp利用率更高。
二者存储方式不一样,对于timestamp,它把客户端插入的时间从当前时区转化为世界标准时间(UTC)进行存储,查询时,逆向返回。但对于datetime,基本上存什么是什么。
二者范围不一样。timestamp范围:‘1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’; datetime范围:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。原因是,timestamp占用4字节,能表示最大的时间毫秒为2的31次方减1,也就是2147483647,换成时间刚好是2038-01-19 03:14:07.999999。
常用的时间函数
在这里插入图片描述
Mysql的三种时区设置
系统时区:保存在系统变量system_time_zone
服务器时区:保存在全局系统变量global.time_zone
每个客户端连接的时区:保存在会话变量session.time_zone
选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒(常用)
SELECT now(),date(now()); – 日期
SELECT now(),time(now()); – 时间
SELECT now(),year(now()); – 年
SELECT now(),quarter(now()); – 季度
SELECT now(),month(now()); – 月
SELECT now(),week(now()); – 周
SELECT now(),day(now()); – 日
SELECT now(),hour(now()); – 小时
SELECT now(),minute(now()); – 分钟
SELECT now(),second(now()); – 秒
SELECT now(),microsecond(now()); – 微秒
EXTRACT(unit FROM date):从日期中抽取出某个单独的部分或组合
SELECT now(),extract(YEAR FROM now()); – 年
SELECT now(),extract(QUARTER FROM now()); – 季度
SELECT now(),extract(MONTH FROM now()); – 月
SELECT now(),extract(WEEK FROM now()); – 周
SELECT now(),extract(DAY FROM now()); – 日
SELECT now(),extract(HOUR FROM now()); – 小时
SELECT now(),extract(MINUTE FROM now()); – 分钟
SELECT now(),extract(SECOND FROM now()); – 秒
SELECT now(),extract(YEAR_MONTH FROM now()); – 年月
SELECT now(),extract(HOUR_MINUTE FROM now()); – 时分

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值