美文网首页
MySQL--TIMESTAMPDIFF函数使用笔记

MySQL--TIMESTAMPDIFF函数使用笔记

作者: 没骆驼de祥子 | 来源:发表于2017-07-06 16:12 被阅读249次

起因

业务中需要比对两个日期的时间是否相等(例如 2017-07-06 20:00:00 与 2017-07-06 20:00:30 截取到分),出于好奇,想在 MySQL 中查询语句做判断。一搜,据各路大侠说在数据库中做判断比在 Java 中做判断性能高,遂查找方法。

插曲

由于基础不扎实,从 w3school 看到 SQL 的函数 datediff(date1,date2)与datediff(minute,date1,date2),遂填参数测之,前者OK,后者GG,也不明原因,弃之。

正题

后找到 TIMESTAMPDIFF(unit,date1,date2) 函数,先入为主地认为它的工作方式是如前例截取数据到分(2017-07-06 20:00)再比较,但使用之后发现在 2017-07-06 20:00 与 2017-07-06 20:01 的比较中竟然返回0 (TIMESTAMPDIFF(MINUTE,'2017-07-06 20:00:xx','2017-07-06 20:01:yy') = 0 )

于是就用 GUI 去测试了,测完之后发现自己原来想是错的,0.0

它并不是通过截取到分之后再判断两个值是否相等,而是算两个日期间隔的秒数是否小于一分钟:

TIMESTAMPDIFF(MINUTE,'2017-07-06 20:00:30','2017-07-06 20:01:00') = 0 --- 间隔30秒

TIMESTAMPDIFF(MINUTE,'2017-07-06 20:00:30','2017-07-06 20:01:30') = 1 --- 间隔60秒

TIMESTAMPDIFF(MINUTE,'2017-07-06 20:00:30','2017-07-06 19:59:31') = 0 --- 间隔59秒

TIMESTAMPDIFF(MINUTE,'2017-07-06 20:00:30','2017-07-06 19:59:30') = 1 --- 间隔60秒

总结

干啥事都有先入为主的思想,但遇到事实与所想不一样,多试验探究事物的原理才是正途。加油。

相关文章

  • MySQL--TIMESTAMPDIFF函数使用笔记

    起因 业务中需要比对两个日期的时间是否相等(例如 2017-07-06 20:00:00 与 2017-07-06...

  • swift学习笔记②

    Swift学习笔记 - 文集 语法篇 一、函数 函数定义 Swift 定义函数使用关键字 func,functio...

  • Scala笔记

    Scala基础 学习twitter的scala教程的笔记 函数 函数定义,scala语法中可以使用多种方式定义函数...

  • ClickHouse源码笔记2:聚合流程的实现

    上篇笔记讲到了聚合函数的实现并且带大家看了聚合函数是如何注册到ClickHouse之中的并被调用使用的。这篇笔记,...

  • Scala 学习笔记

    Scala 学习笔记 1.函数式编程 函数式编程:函数式编程把函数当作一等公民,充分利用函数,支持函数的多种使用方...

  • 3.Rust新手教程-函数、控制流、循环

    学习笔记,仅此而已 一、函数 Rust函数命名使用关键字fn,类似js的function,变量名使用小写+下划线形...

  • swift002

    有来写学习swift的笔记了。。。。 函数的默认值 没有返回值的函数 使用常量记录函数 闭包 在OC中block是...

  • Item 2: Consider a builder when

    笔记 telescoping constructor在创建构造函数的时候,采取以下策略:第一个构造函数使用必选的参...

  • go 零散笔记(未整理)

    go 学习零散笔记 Go语言程序员推荐使用 驼峰式 命名 函数(func) 一个函数的声明由func关键字、函数名...

  • 为什么需要非线性函数C1W3L07

    声明此文章的内容来之吴恩达老师深度学习公开课,此为课堂笔记 1、使用线性函数与去掉隐藏层没什么区别2、使用线性函数...

网友评论

      本文标题:MySQL--TIMESTAMPDIFF函数使用笔记

      本文链接:https://www.haomeiwen.com/subject/eqihhxtx.html