欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用MYSQL TIMESTAMP字段進(jìn)行時(shí)間加減運(yùn)算問題

 更新時(shí)間:2023年02月06日 10:02:22   作者:蟻方陣  
這篇文章主要介紹了使用MYSQL TIMESTAMP字段進(jìn)行時(shí)間加減運(yùn)算問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MYSQL TIMESTAMP字段進(jìn)行時(shí)間加減運(yùn)算

在數(shù)據(jù)分析過程中,想當(dāng)然地對TIMESTAMP字段進(jìn)行運(yùn)算,導(dǎo)致結(jié)果謬之千里

計(jì)算公式如下

-- create_time與week_time的聲明都是TIMESTAMP(), 要求精確到分鐘 --
SELECT (sa.create_time - sa.week_time)/(1000 * 60)
from alarm_sla_1 sa

當(dāng)然正確的解法是利用timestampdiff函數(shù),如下:

SELECT timestampdiff(minute, sa.create_time, sa.week_time)
from alarm_sla_1 sa

但有意思的問題在于,MYSQL明明支持減法操作,為何操作的結(jié)果又大相徑庭?

類似的問題還有,TIMESTAMP字段的時(shí)間精度是什么?

從MYSQL的官方實(shí)例中可以看到(請見后續(xù)的參考文檔),TIMESTAMP字段的小數(shù)部分確定了秒的經(jīng)度,3位小數(shù)精確到毫秒,6位小數(shù)精確到微秒,如下:

聲明方式小數(shù)長度精度
TIMESTAMP(3)3毫秒
TIMESTAMP(6)6微秒

按照上面的推論,那么默認(rèn)的聲明TIMESTAMP應(yīng)該精確到秒,那么應(yīng)該相減的結(jié)果應(yīng)該得到秒,測試語句如下:

SELECT sa.week_time - sa.create_time, timestampdiff(second, sa.create_time, sa.week_time)
from alarm_sla_1 sa

但最后的結(jié)果見下表:

相減結(jié)果函數(shù)結(jié)果
100001286412

顯然,并不存在相關(guān)性,差異何止里計(jì)?

后來繼續(xù)進(jìn)行了指定經(jīng)度的操作運(yùn)算,結(jié)論依舊如此。

DATETIME 與 TIMESTAMP的區(qū)別

特性DATETIMETIMESTAMP
時(shí)間范圍1000-01-01 00:00:00到9999-12-31 23:59:591970-01-01 00:00:01到2038-01-09 03:14:07
存儲空間8+3(秒的精度)4+3(秒的精度)
格式轉(zhuǎn)換不支持支持UTC
多時(shí)區(qū)支持不支持,固定時(shí)區(qū)不支持
創(chuàng)建索引不能
查詢后緩存結(jié)果

結(jié)論

MYSQL中TIMESTAMP字段直接進(jìn)行相減操作,可能得到難以理解的結(jié)果,請慎用。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

參考文檔

相關(guān)文章

  • 詳解MySQL主鍵唯一鍵重復(fù)插入解決方法

    詳解MySQL主鍵唯一鍵重復(fù)插入解決方法

    我們插入數(shù)據(jù)的時(shí)候,有可能碰到重復(fù)數(shù)據(jù)插入的問題,那么MySQL主鍵唯一鍵重復(fù)插入如何解決,本文就詳細(xì)的來介紹一下,感興趣的可以了解一下
    2021-09-09
  • mysql如何將id重新修改為遞增

    mysql如何將id重新修改為遞增

    這篇文章主要介紹了mysql如何將id重新修改為遞增,本文模擬場景結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • MySQL判斷空值的三種方法

    MySQL判斷空值的三種方法

    在創(chuàng)建表時(shí),可以指定的列是否可以不包含值,如果在一個(gè)列不包含值,則其稱其為空值NULL,NULL一個(gè)特殊值,代表缺失的值或者不適用的情況,表示未知數(shù)據(jù),本文給大家介紹了MySQL判斷空值的三種方法,需要的朋友可以參考下
    2024-03-03
  • MySQL中的存儲過程異常處理

    MySQL中的存儲過程異常處理

    這篇文章主要介紹了MySQL中的存儲過程異常處理方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 一文學(xué)習(xí)MySQL?意向共享鎖、意向排他鎖、死鎖

    一文學(xué)習(xí)MySQL?意向共享鎖、意向排他鎖、死鎖

    這篇文章主要介紹了MySQL?意向共享鎖、意向排他鎖、死鎖,包括InnoDB表級鎖,意向共享鎖和意向排他鎖及操作方法,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • mysql 導(dǎo)出select語句結(jié)果到excel文件遇到問題及解決方法

    mysql 導(dǎo)出select語句結(jié)果到excel文件遇到問題及解決方法

    這篇文章主要介紹了mysql 導(dǎo)出select語句結(jié)果到excel文件遇到問題及解決方法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • Mysql中replace與replace into的用法講解

    Mysql中replace與replace into的用法講解

    今天小編就為大家分享一篇關(guān)于Mysql中replace與replace into的用法講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • MySQL范圍查詢優(yōu)化的場景實(shí)例詳解

    MySQL范圍查詢優(yōu)化的場景實(shí)例詳解

    范圍訪問方法使用單一索引去檢索表中的數(shù)據(jù)包含一個(gè)或者多個(gè)索引值的行記錄,下面這篇文章主要給大家介紹了關(guān)于MySQL范圍查詢優(yōu)化的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • MySQL 不用存儲過程循環(huán)插入數(shù)據(jù)的方法

    MySQL 不用存儲過程循環(huán)插入數(shù)據(jù)的方法

    在MySQL中,使用INSERT INTO VALUES語句可以一次性插入多行數(shù)據(jù),提高插入效率,還可通過Python的pymysql庫生成和執(zhí)行插入語句,這不僅減少了操作時(shí)間,還提高了代碼的簡潔性和執(zhí)行效率
    2024-09-09
  • MySQL事務(wù)與鎖實(shí)例教程詳解

    MySQL事務(wù)與鎖實(shí)例教程詳解

    事務(wù)是指滿足ACID特性的的一組操作,可以通過Commit提交事務(wù),也可以也可以通過Rollback進(jìn)行回滾。會(huì)存在中間態(tài)和一致性狀態(tài),也是真正在數(shù)據(jù)庫表中存在的狀態(tài)
    2022-11-11

最新評論