MySQL中date,year,datetime,timestamp和time数据类型的区别
发布网友
发布时间:2022-04-30 08:17
我来回答
共1个回答
热心网友
时间:2022-04-08 12:48
MySQL日期与时间数据类型的区别请看下表:
每种日期和时间类型都有一个有效范围。如果插入的值超出相应范围,系统会报错并将相应的零值插入到数据库中,各个类型的零值请看上表。
YEAR类型用4位数表示年份。范围从1901~2155,插入超范围的值时系统报错并插入0000。
DATE类型用YYYY-MM-DD形式显示日期。范围从1000-01-01~9999-12-31插入超范围的值时系统报错并插入零值。此类型除了可接受YYYY-MM-DD和YYYYMMDD格式的输入外,还可以识别其它一些不严格的语法格式,例如YYYY/MM/DD、YYYY.MM.DD等其他标点符号作为间隔的形式日期值的输入。
TIME类型用HH:MM:SS形式显示时间。其中MM和SS的取值范围是0~59,HH的取值范围比较特别其取值范围是0~838,一般来讲小时数的范围是0~23,但是为了满足特殊情况的需要,MySQL扩大了TIME类型的范围,而且可以接受负数。TIME类型支持D HH:MM:S格式的时间表达字串,D表示天数,取值范围0~34。例如,输入30 21:15:26,系统会将小时部分按30*24+21转换为 741:15:26。除了标准的输入方式HH:MM:SS外,此类型还可以接受一些非标准的输入方式,例如,输入12,系统会转换为00:00:12、输入1212,系统会转换为
00:12:12、输入121212,系统会转换为12:12:12等。
DATETIME类型用YYYY-MM-SS HH:MM:SS形式显示日期与时间。范围从1000-01-01 00:00:00~9999-12-31 23:59:59 插入超范围的值时,系统报错并插入零值(0000-00-00 00:00:00)。此类型除了可接受YYYY-MM-SS HH:MM:SS格式的输入外,还可以识别YYYYMMSSHHMMSS形式的输入值。例如,输入20170117174856,系统会转换为
2017-01-17 17:48:56。
TIMESTAMP类型情况与DATETIME类型接近,但是它的取值范围要比DATETIME类型窄很多,范围从19700101080001~20380119111407(1970-01-01 08:00:01~2038-01-19 11:14:07)。**另外,TIMESTAMP类型还有一个特别之处,那就是它的值的时间部分是根据时区来显示的,例如在东八区插入的TIMESTAMP类型值2017-01-16 18:04:25,在东七区的时间部分会显示17:04:25,而在东九区则变为19:04:25,对于这一点我们要特别留意。**
我们在选择日期与时间数据类型时,请根据实际需求选择相应的类型,一般应选择刚好够用最好,这样可节省系统资源。例如只需要知道日期的选择DATE类型、需要同时知道日期与时间的就选择DATETIME类型、仅仅需要记录时间的则选择TIME类型等。
MySQL中date,year,datetime,timestamp和time数据类型的区别
TIMESTAMP类型情况与DATETIME类型接近,但是它的取值范围要比DATETIME类型窄很多,范围从19700101080001~20380119111407(1970-01-01 08:00:01~2038-01-19 11:14:07)。**另外,TIMESTAMP类型还有一个特别之处,那就是它的值的时间部分是根据时区来显示的,例如在东八区插入的TIMESTAMP类型值2017-01-16...
关于Mysql的日期时间类型区分、比较和常用函数
TimeStamp: 与DateTime类似,格式 YYYY-MM-DD HH:mm:ss,但可精确到毫秒。当需要跨时区支持时,如国际与国内业务,使用TimeStamp可以避免时差问题,如后台配置为 @JSONField(format="yyyy-MM-dd HH:mm:ss:SSS")。Date: 简化显示为 YYYY-MM-DD,适用于精确到天的业务。后台取值为 @JSONField(form...
MySQL中DATETIME,DATE和TIMESTAMP类型的区别
DATETIME 和TIMESTAMP不同点:范围不一样,DATETIME范围1000-01-01 00:00:00到9999-12-31 23:59:59 TIMESTAMP范围为1970年到2037年之间.
在MySQL 中处理时间
DATETIME与TIMESTAMP的比较DATETIME和TIMESTAMP在日期范围和默认行为上有所不同。TIMESTAMP在5.6.5版本之前不支持自动初始化或更新,而DATETIME在5.6.5之后可以使用NOW()或LOCALTIME()等同义词。时间处理细节TIME类型包含一天中的时间,但范围不限于常规的00:00-23:59,且MySQL对10:34这样的简写有不同...
mysql中,datetime与timestamp数据类型有什么区别
datetime占用8个字节,timestamp占用4个字节。timestamp利用率更高。二者存储方式不一样,对于timestamp,它把客户端插入的时间从当前时区转化为世界标准时间(UTC)进行存储,查询时,逆向返回。但对于datetime,基本上存什么是什么。二者范围不一样。timestamp范围:‘1970-01-01 00:00:01.000000’ 到 ...
数据库中 日期的几种表示方法
Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。【1】Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。【2】Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为 “YYYY-MM...
mysql datetime、date、time、timestamp区别
Oracle数据库则提供了更丰富的日期类型,如Date(7字节,存储精确到秒),TIMESTAMP(13字节,支持小数秒和时区),以及TIMESTAMP WITH TIME ZONE(时区支持)。INTERVAL类型用于表示时间段,如YEAR TO MONTH和DATE TO SECOND。SQL Server的datetime和smalldatetime类型有所不同:datetime(8字节)用于存储日...
mysql中“datetime”和“timestamp”的区别是什么?
DATETIME、DATE和TIMESTAMP,除了DATE用来表示一个不带时分秒的是日期,另外两个都带时分秒。TIMESTAMP还可以精确到毫秒。TIMESTAMP列必须有默认值,默认值可以为“0000-00-00 00:00:00”,但不能为null。TIMESTAMP列不可以设置值,只能由数据库自动去修改。一个表可以存在多个TIMESTAMP列,但只有一个...
面试官问:mysql中时间日期类型和字符串类型的选择
MySQL中存在多种时间日期的数据类型,包括YEAR、TIME、DATE、DATETIME以及TIMESTAMP等。本文内容源自华为云社区,作者为香菜聊游戏。关于DATETIME和TIMESTAMP的用法:1、相同点:DATETIME和TIMESTAMP都可以表示年月日时分秒的格式,即YYYY-MM-DD HH:MM:SS。2、不同点:DATETIME存储的是与时区无关的数据,而...
mysql数据库里的日期用timestamp还是datetime好?
1.Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。2.Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为 “YYYY-MM-DD HH:MM:SS”。支持的时间范围是“1000-00-00 00:00:00”到“9999-...