TIMESTAMPDIFF函数和dateDiff函数分别是Mysql和 ClickHouse数据库的计算两个日期差值的函数,在项目中踩过坑,所以在此记录一下有共同点和异同点,避免今后继续踩坑。
注:这里 mysql的版本为8.0.25,clickhouse为20.12.5.14

一、相同:

  • 1.1、都是计算日期差值的函数
  • 1.2、都支持 年(year)、月(month)、日(day)、时(hour)、分(minute)、秒(second)、周(week)、刻钟(quarter) 的差值计算

二、不相同

  • mysql的TIMESTAMPDIFF函数结果 是下取整,dateDiff函数结果是向上取整

三、例子

  • mysql
/*目前版本为mysql8.0.25 * TIMESTAMPDIFF函数是将两个日期相减后得到精确的的时间差值,后下取整*/SELECT /*计算 年份 这里两个日期差值大于0年但小于1年 结果为0*/TIMESTAMPDIFF(YEAR,STR_TO_DATE(CONCAT('2020-11-01',' 00:00:00' ),'%Y-%m-%d %H:%i:%s'),STR_TO_DATE(CONCAT('2021-02-01',' 00:00:30' ),'%Y-%m-%d %H:%i:%s')) AS year,/*计算 月份 这里两个日期差值大于1个月但未到2个月 结果为1*/TIMESTAMPDIFF(MONTH,STR_TO_DATE(CONCAT('2021-01-21',' 00:00:00' ),'%Y-%m-%d %H:%i:%s'),STR_TO_DATE(CONCAT('2021-03-02',' 00:00:30' ),'%Y-%m-%d %H:%i:%s')) AS month,/*计算 天 这里两个日期差值大于0天但未到1天 结果为0*/TIMESTAMPDIFF(DAY,STR_TO_DATE(CONCAT('2021-01-01',' 10:00:00' ),'%Y-%m-%d %H:%i:%s'),STR_TO_DATE(CONCAT('2021-01-02',' 01:00:30' ),'%Y-%m-%d %H:%i:%s')) AS day,/*计算 小时 这里两个日期差值大于1小时但未到1小时 结果为1*/TIMESTAMPDIFF(HOUR,STR_TO_DATE(CONCAT('2021-01-01',' 00:40:00' ),'%Y-%m-%d %H:%i:%s'),STR_TO_DATE(CONCAT('2021-01-01',' 02:10:30' ),'%Y-%m-%d %H:%i:%s')) AS hour,/*计算 分钟 这里两个日期差值大于1分钟但未到2分钟 结果为1*/TIMESTAMPDIFF(MINUTE,STR_TO_DATE(CONCAT('2021-01-01',' 10:10:40' ),'%Y-%m-%d %H:%i:%s'),STR_TO_DATE(CONCAT('2021-01-01',' 10:12:12' ),'%Y-%m-%d %H:%i:%s')) AS minute,/*计算 毫秒 这里两个日期差值 结果为-10*/TIMESTAMPDIFF(SECOND,STR_TO_DATE(CONCAT('2021-01-01',' 00:00:40' ),'%Y-%m-%d %H:%i:%s'),STR_TO_DATE(CONCAT('2021-01-01',' 00:00:30' ),'%Y-%m-%d %H:%i:%s')) AS second;
  • clickhosue
/*目前版本为clickhouse 20.12.5.14 * dateDiff函数是将两个日期相减后得到精确的的时间差值,后上取整* */
SELECT /*计算 年份 这里两个日期差值大于0年但小于1年 结果为1*/dateDiff('year', toDateTime('2020-11-01 00:00:00'), toDateTime('2021-02-01 00:00:30')) AS year,/*计算 月份 这里两个日期差值大于1个月但未到2个月 结果为2*/dateDiff('month', toDateTime('2021-01-21 00:00:00'), toDateTime('2021-03-02 00:00:30')) AS month,/*计算 天 这里两个日期差值大于0天但未到1天 结果为1*/dateDiff('day', toDateTime('2021-01-01 10:00:00'), toDateTime('2021-01-02 01:00:30')) AS day,/*计算 小时 这里两个日期差值大于1小时但未到1小时 结果为2*/dateDiff('hour', toDateTime('2021-01-01 00:40:00'), toDateTime('2021-01-01 02:10:30')) AS hour,/*计算 分钟 这里两个日期差值大于1分钟但未到2分钟 结果为2*/dateDiff('minute', toDateTime('2021-01-01 10:10:40'), toDateTime('2021-01-01 10:12:12')) AS minute,/*计算 毫秒 这里两个日期差值 结果为-10*/dateDiff('second', toDateTime('2021-01-01 00:00:40'), toDateTime('2021-01-01 00:00:30')) AS second;

结果对比:

Mysql和 ClickHouse计算时间函数的差值的区别(dateDiff和TIMESTAMPDIFF)相关推荐

  1. python 计算时间、日期差值类

    环境:win10+python3x V:1.0 简单实现了一下功能本地测试可用,记录下次接着二次开发用 import datetime import re class TimeDifferenceC( ...

  2. python计算日期间的差值,python 计算时间、日期差值类

    环境:win10+python3x V:1.0 简单实现了一下功能本地测试可用,记录下次接着二次开发用 import datetime import re class TimeDifferenceC( ...

  3. 处理时间_3_计算两个时间列工作日差值

    计算两个时间列工作日差值 需求描述 需求:对EMP表里员工KING和SMITH的hiredate入职时间差,这里单位是天且是工作日时间,即周末不计算在内. 解决方法:通过DATEDIFF函数来完成. ...

  4. 处理时间_2_计算两个时间列的差值

    计算两个时间列的差值 需求描述 需求:对EMP表里员工KING和SMITH的hiredate入职时间差,这里单位是分钟.小时.天.周.月.年. 解决方法:通过DATEDIFF函数来完成. 注: 数据库 ...

  5. mysql数据中计算时间差函数

    mysql数据中计算时间差函数 MySql计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime ...

  6. mysql 日期和时间函数_介绍一下mysql的日期和时间函数

    介绍一下mysql的日期和时间函数 mysql> SELECT PERIOD_DIFF(9802,199703); -> 11 DATE_ADD(date,INTERVAL expr ty ...

  7. MySQL中常用日期时间函数及获得

    MySQL中常用日期时间函数: 下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DA ...

  8. mysql时间函数now()_MySQL中时间函数NOW()和SYSDATE()的区别

    mysql中日期函数还是比较常用的.主要有NOW()和SYSDATE()两种,虽然都表示当前时间,但使用上有一点点区别. NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间. ...

  9. oracle中时间差转秒,oracle计算时间秒数差

    --计算plsql处理时间差 --qzq declare time1 timestamp; --开始时间 time2 timestamp; --结束时间 sum1 number(9); --时间差(s ...

最新文章

  1. SIGSEGV 和 SIGBUS gdb看汇编
  2. 19-7-14 学习笔记
  3. systemverilog硬件设计及建模_3D建模和渲染都吃什么硬件?设计师该如何选购电脑...
  4. python爬虫基础教程115_Python解析网页源代码中的115网盘链接实例
  5. OpenCV使用霍夫变换进行寻线的实例(附完整代码)
  6. 如何查询高考2021普体成绩,中考体育成绩对照表2020
  7. testufo测试刷新率测试_上手体验微星电竞显示器PAG301CR:200Hz高刷新率只是它的小亮点...
  8. MySQL数据库基础(简介、操作规范、基本指令)
  9. 看看webpack打包优化
  10. fodora lianjie mysql_Fedora 16 下安装MySql 服务器及linux c 连接MySql
  11. progressbar 自定义样式_Progressbar的简单使用
  12. 你以为我确定能解决难题?也是硬着头皮向前冲
  13. pgm图像缩小C语言,C++将二进制(P5)图像转换为ascii(P2)图像(.pgm)
  14. VBScript入门篇
  15. 怎么修改背景图片大小的HTML代码,网页背景图片的大小的代码是什么
  16. input中使用pattern属性
  17. linux vim命令详解 编辑文件 保存 退出
  18. Android Studio开启DDMS查看手机文件
  19. IDEA无法启动:error launching idea (Failed to create JVM )
  20. 《Hadoop系列》脚本开发自动化配置伪分布式Hadoop

热门文章

  1. python代码电影人物关系_Python基于network模块制作电影人物关系图
  2. 线性方程组的类型及求解(一)(备份草稿)
  3. MOT多目标跟踪评价指标
  4. LKY_OfficeTools 一键优雅的安装并激活你的Office
  5. 【BabylonJs】在 Vue3 中使用 BabylonJs 开发 3D 是什么体验
  6. 谷歌眼镜设计规范之UI设计原则
  7. 重金属废水中的含镍废水处理方法
  8. 一文讲解电源技术中的安森美深力科CAT6219-330TDGT3 500 mA,带快速启动 LDO稳压器 详情讲解
  9. VOL指标-成交量指标
  10. inner_product