- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 截断表
- SQL - 克隆表
- SQL - 临时表
- SQL - 修改表
- SQL - 删除表
- SQL - 删除表
- SQL - 约束
- SQL 查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - Select Into
- SQL - Insert Into Select
- SQL - 更新查询
- SQL - 删除查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - Where 子句
- SQL - Top 子句
- SQL - Distinct 子句
- SQL - Order By 子句
- SQL - Group By 子句
- SQL - Having 子句
- SQL - AND & OR
- SQL - BOOLEAN (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY, ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接 vs 右连接
- SQL - Union vs Join
- SQL 键
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 复合键
- SQL - 备用键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 集群索引
- SQL - 非集群索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - Min & Max
- SQL - 空函数
- SQL - 检查约束
- SQL - 默认约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - Group By vs Order By
- SQL - IN vs EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL - 日期和时间
SQL 提供多种数据类型和函数来处理数据库中的日期和时间值。这是因为日期和时间值以各种格式表示。例如,表示日期值有两种常见方法:DD/MM/YYYY 和 MM/DD/YYYY。类似地,表示时间值的方法也多于一种。
为了让数据库识别以任何格式给定的此类数据,我们使用多种数据类型和函数。
将日期和时间数据存储在数据库中的唯一棘手部分是确保这些值以与数据类型相同的格式插入表中。
不同的数据库系统使用不同的数据类型和函数来存储和处理日期和时间数据。
SQL 中的日期和时间数据类型
日期和时间数据类型用于 SQL 中,以各种格式存储日期和时间值。SQL 中可用的数据类型如下所示。
序号 | 数据类型和描述 | 存储 |
---|---|---|
1 | datetime 它同时存储日期和时间,从 1753 年 1 月 1 日到 9999 年 12 月 31 日,精度为 3.33 毫秒;格式为:YYYY-MM-DD HH:MI:SS。 |
8 字节 |
2 | datetime2 它同时存储日期和时间,从 0001 年 1 月 1 日到 9999 年 12 月 31 日,精度为 100 纳秒。 |
6 - 8 字节 |
3 | smalldatetime 它同时存储日期和时间,从 1900 年 1 月 1 日到 2079 年 6 月 6 日,精度为 1 分钟。它以 YYYY-MM-DD HH:MI:SS 的格式存储。 |
4 字节 |
4 | date 它仅存储日期,从 0001 年 1 月 1 日到 9999 年 12 月 31 日,格式为:YYYY-MM-DD。 |
3 字节 |
5 | time 它仅存储时间,精度为 100 纳秒。 |
3 - 5 字节 |
6 | datetimeoffset 它与 datetime2 相同,并增加了时区偏移量。 |
8 - 10 字节 |
7 | timestamp 它存储每次创建或修改行时更新的唯一编号。它与实际时间无关,并且基于内部时间。每个表只能有一个 timestamp 变量。 |
示例
在以下示例中,让我们创建一个名为 SALES_DETAILS 的表,该表仅接受不同格式的日期和时间值。
CREATE TABLE SALES_DETAILS( orderDate DATE, shippingDate DATETIME, deliveredDate TIMESTAMP, time TIME );
要将值插入此表,请使用以下查询 -
INSERT INTO SALES_DETAILS VALUES ('2023-02-01', '2023-02-01 :10:00','2023-02-03 :18:00', '18:00');
输出
该表将创建如下所示 -
orderDate | shippingDate | deliveredDate | time |
---|---|---|---|
2023-02-01 | 2023-02-01 :10:00 | 2023-02-03 :18:00 | 18:00 |
SQL 中的日期和时间函数
SQL 还提供多个函数来处理日期和时间值。
例如,有不同的函数可以以不同的格式检索当前时间戳。让我们在下面看看其中的一些函数 -
CURDATE() 函数
要获取当前日期,我们在 MySQL 中使用 CURDATE() 函数。结果日期的格式将为 'YYYY-MM-DD'(字符串)或 YYYYMMMDD(数字)。
SELECT CURDATE();
输出
当我们执行上述查询时,我们得到当前日期 -
CURDATE() |
---|
2023-08-22 |
NOW() 函数
MySQL NOW() 函数将根据上下文检索当前日期和时间值作为时间戳,并且返回的值将采用以下两种格式之一:'YYYY-MM-DD hh:mm:ss' 和 'YYYYMMDDhhmmss'。
SELECT NOW();
输出
当我们执行上述 SQL 查询时,我们得到当前日期和时间如下 -
NOW() |
---|
2023-08-22 15:30:25 |
CURRENT_TIMESTAMP() 函数
MySQL CURRENT_TIMESTAMP() 函数用于获取当前时间戳。返回的值将为 'YYYY-MM-DD hh:mm:ss'(字符串)或 YYYYMMDDhhmmss(数字)格式。此函数是 NOW() 的同义词。
SELECT CURRENT_TIMESTAMP();
输出
当我们运行上述 SQL 查询时,我们得到以下输出 -
CURRENT_TIMESTAMP() |
---|
2023-08-22 15:31:32 |