mysql日期教程_mysql中的日期和时间

服务器数据库5.5,本地5.7在讲远程服务器导入到本地操作的时候,一直在date上报invalid value,最后定位在这样的语句上created_at date no null default '0000-00-00 00:00:00',这里涉及到两个问题:

date日期的格式

服务器sql-model

正是因为5.7版本对安全方面加强了很多,所以默认的sql-model中有NO_ZERO_DATE,所以导致在插入和设置时,不符合或无效的值不会自动转为'0', 不同的日期类型对应不同的'0',date对应的是0000-00-00。

mysql中共有5种时间类型

year

date

time

datetime

timestamp

注:每种类型都有一个有效的范围,当给某类型设置一个无效值的时候,mysql会自动设置为“0”;timestamp类可以自动更新其时间(前提是sql-model中不包含‘NO_ZERO_DATE’)。

应用场景

date 适用于只使用日期而不使用时间部分, 显示格式YYYY-MM-DD,有效范围1000-01-01到9999-12-31

datetime 适用于包含日期和时间的场景,显示格式YYYY-MM-DD HH:MM:SS,有效范围1000-01-01 00:00:00到9999-12-31 23:59:59

timestamp 使用于包含日期和时间的场景,显示格式YYYY-MM-DD HH:MM:SS,有效范围1970-01-01 00:00:01到2038-01-19 03:14:07UTC,客户端时间会 根据时区自动转换

注:datetime和timestamp都可以添加6位分数部分来支持微妙精度,如2016-10-19 12:27: 33.999999

常用类型

datetime和timestamp对很多程序都能工作,但是某些场景下,却有优劣之分。datetime将时间封装在YYYYMMDDHHMMSS的整数中,与时区无关,并使用8个字节空间;timestamp使用4个字节,所以它的范围更短,如上所述,并且和时区紧密相关,同时timestamp会自动更新,列默认属性也是not null.

注:将unix时间存储为整数,不会带来任何收益,通常不建议这样做。

来源:oschina

链接:https://my.oschina.net/u/1249401/blog/760058

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值