TIDB日期和时间类型

TIDB日期和时间类型

一、日期和时间

DATE、DATETIME和TIMESTAMP

1、DATE

DATE 类型的格式为 YYYY-MM-DD,支持的范围是 1000-01-01 到 9999-12-31。

2、TIME 类型

TIME 类型的格式为 HH:MM:SS[.fraction],支持的范围是 -838:59:59.000000 到 838:59:59.000000。TIME 不仅可用于指示一天内的时间,还可用于指两个事件之间的时间间隔。fsp 参数表示秒精度,取值范围为:0 ~ 6,默认值为 0。

3、DATETIME 类型

DATETIME 类型是日期和时间的组合,格式为 YYYY-MM-DD HH:MM:SS[.fraction]。支持的范围是 1000-01-01 00:00:00.000000 到 9999-12-31 23:59:59.000000。 fsp 参数表示秒精度,取值范围为 0~6,默认值为 0。

4、TIMESTAMP 类型

TIMESTAMP 类型包含日期和时间,支持的范围是 1970-01-01 00:00:01.000000 到 2038-01-19 03:14:07.999999。fsp参数表示秒精度,取值范围为 0~6,默认值为 0。在 TIMESTAMP 中,不允许零出现在月份部分或日期部分,唯一的例外是零值本身 ‘0000-00-00 00:00:00’。

5、YEAR 类型

YEAR类型的格式为 ‘YYYY’,支持的值范围是 1901 到 2155,或零值 0000。

二、数据类型概述

TiDB 支持除空间类型 (SPATIAL) 之外的所有 MySQL 数据类型,包括数值型类型、字符串类型、时间和日期类型、JSON 类型。

数据类型定义一般为 T(M[, D]),其中:

T 表示具体的类型。
M 在整数类型中表示最大显示长度;在浮点数或者定点数中表示精度;在字符类型中表示最大长度。M 的最大值取决于具体的类型。
D 表示浮点数、定点数的小数位长度。
fsp 在时间和日期类型里的 TIME、 DATETIME 以及 TIMESTAMP 中表示秒的精度,其取值范围是 0 到 6。值为 0,表示没有小数部分。如果省略,则默认精度为 0。

三、数据类型的默认值

1、在一个数据类型描述中的 DEFAULT value 段描述了一个列的默认值。这个默认值必须是常量,不可以是一个函数或者是表达式。但是对于时间类型,可以例外的使用 NOW 、CURRENT_TIMESTAMP 、LOCALTIME 、LOCALTIMESTAMP 等函数作为 DATETIME 或者 TIMESTAMP 的默认值。

2、BLOB 、TEXT 以及 JSON 不可以设置默认值。

3、如果一个列的定义中没有 DEFAULT 的设置。TiDB 按照如下的规则决定:

4、如果该类型可以使用 NULL 作为值,那么这个列会在定义时添加隐式的默认值设置 DEFAULT NULL
5、如果该类型无法使用 NULL 作为值,那么这个列在定义时不会添加隐式的默认值设置。
6、对于一个设置了 NOT NULL 但是没有显式设置 DEFAULT 的列,当 INSERTREPLACE 没有涉及到该列的值时,TiDB 根据当时的 SQL_MODE 进行不同的行为:

7、如果此时是 strict sql mode ,在事务中的语句会导致事务失败并回滚,非事务中的语句会直接报错。
8、如果此时不是 strict sql mode ,TiDB 会为这列赋值为列数据类型的隐式默认值。
此时隐式默认值的设置按照如下规则:

-------对于数值类型,它们的默认值是 0。当有 AUTO_INCREMENT 参数时,默认值会按照增量情况赋予正确的值。
------对于除了时间戳外的日期时间类型,默认值会是该类型的“零值”。时间戳类型的默认值会是当前的时间。
-----对于除枚举以外的字符串类型,默认值会是空字符串。对于枚举类型,默认值是枚举中的第一个值。

四、数值类型

TiDB 支持 MySQL 所有的数值类型,按照精度可以分为:

整数类型(精确值)
浮点类型(近似值)
定点类型(精确值)

1、整数类型

TiDB 支持 MySQL 所有的整数类型,包括 INTEGER/INT、TINYINT、SMALLINT、MEDIUMINT 以及 BIGINT,完整信息参考这篇文档。

1.1 字段说明:

M 类型: 显示宽度,可选
UNSIGNED 无符号数: 如果不加这个标识,则为有符号数
ZEROFILL 补零标识: 如果有这个标识,TiDB 会自动给类型增加 UNSIGNED 标识,但是没有做补零的操作

1.2 类型定义

1、BIT 类型
比特值类型。M 表示比特位的长度,取值范围从1到64,其默认值是1。

2、BOOLEAN 类型
布尔类型,别名为 BOOL,和 TINYINT(1) 等价。零值被认为是 False,非零值认为是 True。在TiDB 内部,True 存储为 1,False 存储为 0。

3、TINYINT 类型
TINYINT类型。有符号数的范围是 [-128, 127] 。无符号数的范围是 [0, 255] 。

4、MEDIUMINT 类型
MEDIUMINT 类型。有符号数的范围是 [-8388608, 8388607]。无符号数的范围是 [0, 16777215]。

5、INTEGER 类型
INTEGER 类型,别名 INT。有符号数的范围是 [-2147483648, 2147483647]。无符号数的范围是 [0, 4294967295]。

6、BIGINT 类型
BIGINT 类型。有符号数的范围是 [-9223372036854775808, 9223372036854775807]。无符号数的范围是 [0, 18446744073709551615]

2、浮点类型

TiDB 支持 MySQL 所有的浮点类型,包括 FLOAT、DOUBLE。

2.1 字段说明:

M : 小数总位数
D : 小数点后位数
UNSIGNED: 无符号数,如果不加这个标识,则为有符号数
ZEROFILL: 补零标识,如果有这个标识,TiDB会自动给类型增加UNSIGNED标识

2.2类型定义

1、FLOAT 类型
单精度浮点数。允许的值范围为 -2^128 ~ +2^128,也即 -3.402823466E+38 到 -1.175494351E-38、0 和 1.175494351E-38 到 3.402823466E+38。这些是基于 IEEE 标准的理论限制。实际的范围根据硬件或操作系统的不同可能稍微小些。

FLOAT( p ) 类型中,p 表示精度(以位数表示)。只使用该值来确定是否结果列的数据类型为 FLOAT 或 DOUBLE。如果 p 为从 0 到 24,数据类型变为没有 M 或 D 值的 FLOAT。如果 p 为从 25 到 53,数据类型变为没有 M 或 D 值的 DOUBLE。结果列范围与本节前面描述的单精度 FLOAT 或双精度 DOUBLE 数据类型相同

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
FLOAT(p) [UNSIGNED] [ZEROFILL]

与在 MySQL 中一样,FLOAT 数据类型存储近似值。对于货币之类的精确值,建议使用 DECIMAL 类型。

2、DOUBLE 类型
双精度浮点数,别名为 DOUBLE PRECISION。允许的值范围为:-2^1024 ~ +2^1024,也即是 -1.7976931348623157E+308 到 -2.2250738585072014E-308、0 和 2.2250738585072014E-308 到 1.7976931348623157E+308。这些是基于 IEEE 标准的理论限制。实际的范围根据硬件或操作系统的不同可能稍微小些。

**

DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
DOUBLE PRECISION [(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED] [ZEROFILL]

**
与在 MySQL 中一样,DOUBLE 数据类型存储近似值。对于货币之类的精确值,建议使用 DECIMAL 类型。

2.3 DECIMAL 类型
定点数,别名为 NUMERIC。M 是小数位数(精度)的总数,D 是小数点(标度)后面的位数。小数点和 -(负数)符号不包括在 M 中。如果 D 是 0,则值没有小数点或分数部分。如果 D 被省略,默认是 0。如果 M 被省略,默认是 10。

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]
3、字符串类型

TiDB 支持 MySQL 所有的字符串类型,包括 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 以及 SET,完整信息参考这篇文档。

3.1、类型定义
1、CHAR 类型
定长字符串。CHAR 列的长度固定为创建表时声明的长度。长度可以为从 0 到 255 的任何值。当保存 CHAR 值时,在它们的右边填充空格以达到指定的长度。

[NATIONAL] CHAR[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]

2、VARCHAR 类型
变长字符串。M 表示最大列长度,范围是 0 到 65535。VARCHAR 的最大实际长度由最长的行的大小和使用的字符集确定。

[NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE collation_name]

3、TEXT 类型
文本串。M 表示最大列长度,范围是 0 到 65535。TEXT 的最大实际长度由最长的行的大小和使用的字符集确定。

TEXT[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]

4、TINYTEXT 类型
类似于 TEXT,区别在于最大列长度为 255。

TINYTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

5、MEDIUMTEXT 类型
类似于 TEXT,区别在于最大列长度为 16,777,215。

MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

6、LONGTEXT 类型
类似于 TEXT,区别在于最大列长度为 4,294,967,295。

LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

7、BINARY类型
类似于 CHAR,区别在于 BINARY 存储的是二进制字符串。

BINARY(M)

8、VARBINARY类型
类似于 VARCHAR,区别在于 VARBINARY 存储的是二进制字符串。

VARBINARY(M)

9、TINYBLOB 类型
类似于 BLOB,区别在于最大列长度为 255。

TINYBLOB

10、BLOB 类型
二进制大文件。M表示最大列长度,范围是 0 到 65535。

BLOB[(M)]

11、MEDIUMBLOB 类型
类似于 BLOB,区别在于最大列长度为 16,777,215。

MEDIUMBLOB

12、LONGBLOB 类型
类似于 BLOB,区别在于最大列长度为 4,294,967,295。

LONGBLOB

13、ENUM 类型
枚举类型是一个字符串,它只能有一个值的字符串对象。其值必须是从一个固定集合中选取,这个固定集合在创建表的时候定义,语法是:

ENUM('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name]

例如:

ENUM('apple', 'orange', 'pear')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/125136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美术培训服务预约小程序的作用是什么

线下培训教育机构很多,涉及到的行业及种类很多,美术培训就是其中较为重要的一类,尤其是青少年群体,其拓展度很深,而对商家来说,其主要生源在本地同城,因此品牌宣传和渠道发展、学员赋能很重要。…

盘古M900测试及FT D2000对比

盘古M900测试使用华为W525整机.硬件配置为: CPU:华为盘古M900 内存:板贴DDR4 8G(镁光) SSD: 长江存储 PC005 256G NVME 安装UOS 系统:uniontechos-desktop-20-professional-W525-1050-update5-arm64.…

AI虚拟主播源码系统 搭建专属自己的直播间+送礼物 功能强大 带完整搭建教程

在互联网的不断发展下,直播行业迅速崛起,成为一种新的信息传播和娱乐形式。越来越多的人开始通过直播平台进行交流、互动和分享。因此,开发一款能够提供高质量、稳定直播服务的平台具有重要的现实意义。 随着人工智能技术的不断进步&#xf…

蓝桥杯每日一题2023.10.29

螺旋折线 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 在图中我们可以观察到四个对角线的值均为特殊点&#xff0c;其他的点可以根据这几个 进行偏移量的计算从而进行表示&#xff0c;此题主要是找到规律即可 #include<bits/stdc.h> using namespace std; typedef long…

红米电脑硬盘剪切

Redmi R14 2023版固态硬盘剪切 工具准备操作结尾语 首先要说明&#xff0c;本文所说的操作不一定适合你的电脑&#xff0c;因为电子产品更新换代过快&#xff0c;你的硬盘不一定能剪切&#xff0c;在操作前一定要仔细观察硬盘的型号&#xff0c;是否为同款&#xff0c;我上了图…

web——css样式

服务器字体&#xff1a; 服务器字体&#xff1a;在不同的电脑&#xff0c;不同的操作系统&#xff0c;不同的浏览器之间字体风格的通体 定义 font-face { 设置服务器字体的名字 font-family: admin; 设置字体资源路径 字体资源后缀.ttf/.otf format 设置字体格式 TrueType O…

测试C#调用Aplayer播放视频(1:加载Aplayer控件)

微信公众号“Dotnet跨平台”的文章《开源精品&#xff0c;使用 C# 开发的 KTV 点歌项目》中使用了迅雷开源APlayer播放引擎。最近在学习有哪些能拿来播放视频的组件或控件&#xff0c;于是准备试试&#xff0c;根据文章中的介绍&#xff0c;在迅雷APlayer播放引擎网站中下载了A…

【23真题】对不起,由于我的择校分析,这所可能会炸!

哈喽大家好&#xff0c;现在这个时间节点&#xff0c;有很多同学开始刷真题了&#xff01;所以23真题系列正式启动&#xff01;小马哥将全面发布23真题及详细解析&#xff01; 注意太原科技大学&#xff0c;自我发了择校分析以后&#xff08;苍天为证&#xff0c;我真的没有任…

C++面试——多线程详解

C11提供了语言层面上的多线程&#xff0c;包含在头文件<thread>中。它解决了跨平台的问题&#xff0c;提供了管理线程、保护共享数据、线程间同步操作、原子操作等类。C11 新标准中引入了5个头文件来支持多线程编程&#xff0c;如下图所示&#xff1a; 多进程与多线程 多…

计数排序(秒懂版)

public class CountingSort {int[] sort() {int N 10000;int M 100;//假设A中最大值为100int A[] new int[N];//1~k,原数组int B[] new int[N];//1~k,Stores incompletely sorted numbersint C[] new int[M 1];//0~n,辅助排序数组for (int i 0; i < M; i) {C[i] 0;}…

【Linux】多路IO复用技术①——select详解如何使用select模型在本地主机实现简易的一对多服务器(附图解与代码实现)

这一篇的篇幅可能有点长&#xff0c;但真心希望大家能够静下心来看完&#xff0c;相信一定会有不小的收获。那么话不多说&#xff0c;我们这就开始啦&#xff01;&#xff01;&#xff01; 目录 一对一服务器中的BUG 如何实现简易的一对多服务器 实现简易一对多服务器的大体…

Calcite 通过 API 定义 RelNode 示例

1&#xff09;总结 通过 RelBuilder 创建 RelNode。 2&#xff09;代码示例 MyRelBuilder import cn.com.ptpress.cdm.ds.csv.CsvSchema; import org.apache.calcite.plan.RelOptUtil; import org.apache.calcite.plan.RelTraitDef; import org.apache.calcite.rel.RelNode…

大数据-Storm流式框架(六)---Kafka介绍

Kafka简介 Kafka是一个分布式的消息队列系统(Message Queue)。 官网&#xff1a;Apache Kafka 消息和批次 kafka的数据单元称为消息。消息可以看成是数据库表的一行或一条记录。 消息由字节数组组成&#xff0c;kafka中消息没有特别的格式或含义。 消息有可选的键&#x…

Kubernetes Taint(污点) 和 Toleration(容忍)

Author&#xff1a;rab 目录 前言一、Taint&#xff08;污点&#xff09;1.1 概述1.2 查看节点 Taint1.3 标记节点 Taint1.4 删除节点 Taint 二、Toleration&#xff08;容忍&#xff09; 前言 Kubernetes 中的污点&#xff08;Taint&#xff09;和容忍&#xff08;Toleration…

3D模拟场景开发引擎

在3D工程模拟开发中&#xff0c;有一些专门的引擎和工具可供选择&#xff0c;以帮助您创建逼真的三维模拟和模型。以下是一些用于3D工程模拟的开发引擎和工具&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流…

SCADA在污水和供水系统解决方案

1. 引言 随着城市化的不断发展&#xff0c;污水和供水系统的管理变得越来越重要。为了提高运营效率和监控系统状态&#xff0c;许多污水处理厂开始使用SCADA系统。 SCADA系统具有实时数据采集、监控和控制功能&#xff0c;可以帮助污水处理厂运营人员实时了解系统的运行情况&…

Leetcode.274 H 指数

题目链接 Leetcode.274 H 指数 mid 题目描述 给你一个整数数组 c i t a t i o n s citations citations &#xff0c;其中 c i t a t i o n s [ i ] citations[i] citations[i] 表示研究者的第 i i i 篇论文被引用的次数。计算并返回该研究者的 h h h 指数。 根据维基百科…

Python 学习1 基础

文章目录 基础字符串字面量常用的值类型注释变量print语句数据类型数据类型转换标识符运算符 字符串拓展小结 2023.10.28 周六 最近打算学一下Python&#xff0c;毕竟确实简单方便&#xff0c;而且那个编程语言排名还是在第一。不过不打算靠它吃饭&#xff0c;深不深入暂且不说…

linux-vsftp虚拟多用户

目录 1.安装vsftp 2.安装DB工具&#xff0c;能转化普通文件为vsftpd识别数据库加密文件 3.创建登录虚拟用户的名单 4.加密文件 6.需要修改vsftpd的配置文件 7.修改vsftp的配置文件&#xff0c;加载支持虚拟用户模式 8.针对不同用户开启不同权限 9.重启服务 10.测试 安…

React 组件点击事件

点击事件 点击事件方式1、传统类方法&#xff08;不推荐&#xff09;2、传统类方法 16.3.0 - 自动绑定&#xff08;不推荐&#xff09;3、箭头函数3.1、类组件3.2、函数组件3.3、内联箭头函数 4、useState Hook 点击事件方式 1、传统类方法&#xff08;不推荐&#xff09; 当…