MySQL--TIMESTAMPDIFF函數使用筆記

起因

業(yè)務中需要比對兩個日期的時間是否相等(例如 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)再比較,但使用之后發(fā)現在 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 去測試了,測完之后發(fā)現自己原來想是錯的,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秒

總結

干啥事都有先入為主的思想,但遇到事實與所想不一樣,多試驗探究事物的原理才是正途。加油。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 國家電網公司企業(yè)標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,332評論 6 13
  • 時間獲取 獲取當前時間 now() sysdate() 同now()函數不同的是,now()在執(zhí)行開始時得到,sy...
    悠揚前奏閱讀 1,011評論 0 3
  • 日期的處理在大大小小的iOS項目中都十分常見,隨著Swift3.0正式版的即將推出,語法的改變讓NSDate以及相...
    魚與愚七閱讀 850評論 0 0
  • 一、MySQL 獲得當前日期時間 函數 1.1 獲得當前日期+時間(date + time)函數:now() my...
    極簡架構閱讀 1,289評論 0 1
  • 你的歌真的唱的好,聲音真的很好聽,很迷人。很喜歡你的聲音。有故事的聲音。亂亂的歌聲,音沒那么準,氣息沒那么穩(wěn),但是...
    知情意閱讀 155評論 0 0

友情鏈接更多精彩內容