当前位置: 首页 > article >正文

MySQL和Hive SQL 时间处理常用函数汇总

文章目录

        • 一、基础时间函数
        • 二、日期加减操作
        • 三、日期格式化与解析
        • 四、时间差计算
        • 五、时间类型转换
        • 六、时区处理
        • 示例
          • 获取当前时间并格式化
          • 日期增加 3 天
          • 计算两个日期的天数差
          • 注意事项:

以下是 SQL 中常用的时间处理函数汇总,涵盖 MySQLHive 的差异:

一、基础时间函数
功能MySQLHive
当前时间(日期 + 时间)NOW() / CURRENT_TIMESTAMP()current_timestamp()
当前日期CURDATE() / CURRENT_DATE()current_date()
当前时间CURTIME()current_time()
二、日期加减操作
功能MySQLHive
日期增加 / 减少DATE_SUB(date, INTERVAL n DAY)date_sub(date, n)
月份增加 / 减少DATE_SUB(date, INTERVAL n MONTH)add_months(date, n)
年份增加 / 减少DATE_SUB(date, INTERVAL n YEAR)date_sub(date, n * 365)(近似)
时间增加秒数DATE_ADD(time, INTERVAL n SECOND)date_add(time, n)
三、日期格式化与解析
功能MySQLHive
格式化日期DATE_FORMAT(date, format)date_format(date, format)
解析字符串为日期STR_TO_DATE(str, format)from_utc_timestamp(unix_timestamp(str), ‘Asia/Shanghai’)
提取年份YEAR(date)year(date)
提取月份MONTH(date)month(date)
提取日期DAY(date)day(date)
提取季度QUARTER(date)quarter(date)
四、时间差计算
功能MySQLHive
日期差(天数)DATEDIFF(end_date, start_date)datediff(end_date, start_date)
时间差(秒数)TIMESTAMPDIFF(SECOND, start, end)unix_timestamp(end) - unix_timestamp(start)
五、时间类型转换
功能MySQLHive
时间戳转日期FROM_UNIXTIME(timestamp)from_utc_timestamp(timestamp, ‘Asia/Shanghai’)
日期转时间戳UNIX_TIMESTAMP(date)unix_timestamp(date)
字符串转时间戳UNIX_TIMESTAMP(str, format)unix_timestamp(str, format)
六、时区处理
功能MySQLHive
转换时区CONVERT_TZ(time, from_tz, to_tz)from_utc_timestamp(time, ‘Asia/Shanghai’)
示例
获取当前时间并格式化
MySQL: SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')
Hive: SELECT date_format(current_timestamp(), 'yyyy-MM-dd HH:mm:ss')
日期增加 3 天
MySQL: SELECT DATE_SUB('2025-03-07', INTERVAL 3 DAY)
Hive: SELECT date_sub('2025-03-07', 3)
计算两个日期的天数差
MySQL: SELECT DATEDIFF('2025-03-10', '2025-03-07')
Hive: SELECT datediff('2025-03-10', '2025-03-07')
注意事项:
  • MySQLHive 的函数名称和参数顺序可能存在差异(如 Hivedate_sub 直接使用数值而非 INTERVAL)。
  • Hive 通常需要显式处理时区(如 from_utc_timestamp),而 MySQL 可通过会话时区设置简化操作。

http://www.kler.cn/a/580748.html

相关文章:

  • Qt C++ 实际开发中宏编译的运用
  • Unity插件-Mirror使用方法(九)组件介绍(Network Start Position)
  • Manus VR手套深度解析:重新定义人机交互的未来
  • nginx作为web服务应用
  • redis连接服务
  • git worktree的使用
  • Linux基本操作指令3
  • spring ai 调用本地部署的deepseek实现简单的问答功能
  • Linux原生异步IO原理与实现(Native AIO)
  • 【深度学习】参数管理
  • CI/CD—Jenkins实现自动构建Docker镜像运行Java程序
  • 初识Spring Batch:开启批处理的高效之旅
  • 使用阿里云操作系统控制台排查内存溢出
  • LLM应用开发(六)-联动带UI聊天机器人
  • Golang学习笔记_44——命令模式
  • Vue3 模板引用:打破数据驱动的次元壁(附高阶玩法)
  • Xss漏洞问题
  • SpringBoot + ResponseBodyEmitter 实时异步流式推送
  • 设计模式之单例模式:原理、实现与应用
  • javaweb自用笔记:请求参数、响应、分层解耦、