沉梦听雨的编程指南 沉梦听雨的编程指南
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 基础篇
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • RPC
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 多媒体框架
  • 虚拟机
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 随笔
  • 前端环境搭建
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 脚手架搭建
  • 瑞吉外卖
  • 黑马点评
  • vue-blog
  • 沉梦接口开放平台
  • 用户中心
  • 聚合搜索平台
  • 仿12306项目
  • 壁纸小程序项目
  • RuoYi-Vue
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)

沉梦听雨

时间是最好的浸渍剂,而沉淀是最好的提纯器🚀
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 基础篇
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • RPC
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 多媒体框架
  • 虚拟机
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 随笔
  • 前端环境搭建
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 脚手架搭建
  • 瑞吉外卖
  • 黑马点评
  • vue-blog
  • 沉梦接口开放平台
  • 用户中心
  • 聚合搜索平台
  • 仿12306项目
  • 壁纸小程序项目
  • RuoYi-Vue
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)
  • 基础

  • Mysql

    • MySQL基础小结
    • 索引篇
    • 讲讲回表查询
    • 讲讲索引失效问题
    • 思维导图
    • 数据库优化
    • 临时表
    • 实战篇

      • 日常小记
      • JOIN 解析
      • 执行计划解析
      • 内置函数小记
      • JSON字段处理
      • 时间字段的处理
        • 1、获取当前日期和时间
        • 2、提取日期或时间的特定部分
        • 3、时间差计算
        • 4、格式化日期字段
        • 5、时间提取
        • 6、日期的加减
          • (一)增加时间
          • (二)减少时间
      • 一文教你如何删除重复记录
      • exists语法解析
      • SQL语句优化
    • 读高性能MySQL笔记

  • Redis

  • 达梦数据库

  • 数据库
  • Mysql
  • 实战篇
沉梦听雨
2024-07-14
目录

时间字段的处理

# 时间字段的处理

# 1、获取当前日期和时间

  • NOW():返回当前的日期和时间。

    # 2025-03-14 11:07:24
    SELECT NOW();
    
    1
    2
  • CURDATE():返回当前日期,不包含时间部分。

    # 2025-03-14
    SELECT CURDATE();
    
    1
    2
  • CURTIME():返回当前时间,不包含日期部分。

    # 11:07:24
    SELECT CURTIME();
    
    1
    2
  • UNIX_TIMESTAMP():返回当前时间的 Unix 时间戳。

    SELECT UNIX_TIMESTAMP();
    
    1
  • FROM_UNIXTIME(unix_timestamp):将 Unix 时间戳转换为日期时间。

    SELECT FROM_UNIXTIME(1678783404);
    
    1

# 2、提取日期或时间的特定部分

  • YEAR(date):返回日期的年份部分。

    SELECT YEAR('2025-03-14'); -- 2025
    
    1
  • MONTH(date):返回日期的月份部分。

    SELECT MONTH('2025-03-14'); -- 3
    
    1
  • DAY(date):返回日期的天部分。

    SELECT DAY('2025-03-14'); -- 14
    
    1
  • HOUR(time):返回时间的小时部分。

    SELECT HOUR('11:03:24'); -- 11
    
    1
  • MINUTE(time):返回时间的分钟部分。

    SELECT MINUTE('11:03:24'); -- 3
    
    1
  • SECOND(time):返回时间的秒部分。

    SELECT SECOND('11:03:24'); -- 24
    
    1

实战示例:

-- 近三年条件过滤
and check_year BETWEEN YEAR (CURDATE()) - 2 AND YEAR (CURDATE())
1
2

# 3、时间差计算

  • TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2):返回两个日期时间表达式之间的差值,单位由第一个参数指定。
  • DateDiff():计算 第一个时间 和 第二个时间 的时间差,a - b
  • TIMEDIFF(time_expr1, time_expr2):返回两个时间表达式之间的差值。
SELECT TIMESTAMPDIFF(DAY, '2025-03-01', '2025-03-14'); # 13

SELECT DATEDIFF('2025-03-01', '2025-03-14'); # -13

SELECT TIMEDIFF('11:03:24', '10:00:00'); # '01:03:24'
1
2
3
4
5

# 4、格式化日期字段

# DATE_FORMAT(date, format):将日期格式化为指定的字符串
SELECT DATE_FORMAT('2025-03-01 11:03:24', '%Y-%m-%d'); -- '2025-03-01'

# STR_TO_DATE(str, format):将字符串按指定格式转换为日期
SELECT STR_TO_DATE('14-03-2025', '%d-%m-%Y'); -- 2025-03-14
1
2
3
4
5

# 5、时间提取

  • DATE():提取日期时间表达式的日期部分。
SELECT DATE('2025-03-14 11:03:24'); -- '2025-03-14'
1
  • TIME():提取日期时间表达式的时间部分。
SELECT TIME('2025-03-14 11:03:24'); -- '11:03:24'
1

# 6、日期的加减

# (一)增加时间

# 日期 小于 当前日期加上 30 天
( my_date < CURDATE() + INTERVAL 30 DAY )

# 日期加上 30 天
ADDDATE(my_date, INTERVAL 30 DAY)

# 时间(time) 加上 2 小时
ADDTIME(my_time, '02:00:00')
1
2
3
4
5
6
7
8

函数解析:

  • ADDDATE(date, interval) 函数用于将指定的时间间隔(interval)添加到给定的日期(date)上。
  • ADDTIME(time, interval) 函数用于将指定的时间间隔(interval)添加到给定的时间(time)上。

# (二)减少时间

# 一个日期减 30 天后,在'2024-01-27' 和 '2024-02-27' 的范围内的数据
( my_date - INTERVAL 30 DAY ) BETWEEN '2024-01-27' AND '2024-02-27'

# 一个日期中减去 30 天
ADDDATE(my_date, INTERVAL -30 DAY)

# 一个时间中减去 2 小时
ADDTIME(my_time, '-02:00:00')

# 当天减一天(即昨天)
DATE_SUB( CURDATE(), INTERVAL 1 DAY )

# 例如今天是 2024-7-12,则下面拼接后的时间为 2024-7-11 23:59:59
CONCAT( DATE_SUB( CURDATE(), INTERVAL 1 DAY ), ' 23:59:59' )
1
2
3
4
5
6
7
8
9
10
11
12
13
14

函数解析:

  • DATE_SUB(date, interval) 函数用于将指定的日期(date)上减去时间间隔(interval)。
上次更新: 2025/3/14 17:32:11
JSON字段处理
一文教你如何删除重复记录

← JSON字段处理 一文教你如何删除重复记录→

Theme by Vdoing | Copyright © 2023-2025 沉梦听雨 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式