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

關(guān)于MySQL的時間進(jìn)位問題淺析

 更新時間:2019年12月01日 15:19:28   作者:捏造的信仰  
這篇文章主要給大家介紹了關(guān)于MySQL的時間進(jìn)位問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

MySQL 當(dāng)中默認(rèn)的時間類型(datetime 和 timestamp)的精度是秒,如果設(shè)置進(jìn)去的時間值精度小于秒的話,就會被四舍五入,可能導(dǎo)致數(shù)據(jù)庫中的值比原始值多了一秒。也就是說,本來屬于今天的記錄可能會被記到明天。

下面是一個例子,演示了時間是如何進(jìn)位的。首先創(chuàng)建一張表:

CREATE TABLE test_time (
 time_sec   datetime,
 time_millis datetime(3),
 time_micros datetime(6),
 stamp_sec  timestamp,
 stamp_millis timestamp(3),
 stamp_micros timestamp(6)
);

有的讀者可能不知道 datetime 和 timestamp 定義時是可以帶精度的,精度值為 0~6,表示保留幾位小數(shù),默認(rèn)值為 0。顯然保留 3 位可看作精度為毫秒,保留 6 位可看作精度為微秒。

然后我們插入一條記錄:

INSERT INTO test_time
( time_sec, time_millis, time_micros, 
 stamp_sec, stamp_millis, stamp_micros )
VALUES(
 '2019-11-30 12:34:56.987654', 
 '2019-11-30 12:34:56.987654', 
 '2019-11-30 12:34:56.987654',
 '2019-11-30 12:34:56.987654', 
 '2019-11-30 12:34:56.987654', 
 '2019-11-30 12:34:56.987654'
);

然后再做一次 select * from test_time 查詢就能看到下面的結(jié)果:

time_sec             |time_millis            |time_micros               |stamp_sec            |stamp_millis           |stamp_micros              |
---------------------|-----------------------|--------------------------|---------------------|-----------------------|--------------------------|
2019-11-30 12:34:57.0|2019-11-30 12:34:56.988|2019-11-30 12:34:56.987654|2019-11-30 12:34:57.0|2019-11-30 12:34:56.988|2019-11-30 12:34:56.987654|

可以看到 time_sec 和 stamp_sec 在數(shù)據(jù)庫中的秒值都被進(jìn)位了,time_millis 和 stamp_millis 的毫秒值都被進(jìn)位了。

由此可見,要避免這樣的誤差,有兩個手段:

  • 定義字段的時候使用 datetime(6) 或 timestamp(6);
  • 定義字段時不帶精度,但在將時間存入數(shù)據(jù)庫之前,要將毫秒值截取掉。

相關(guān)文檔:

MySQL 5.6 Reference: Fractional Seconds in Time Values

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 詳解mysql數(shù)據(jù)去重的三種方式

    詳解mysql數(shù)據(jù)去重的三種方式

    本文主要介紹了mysql數(shù)據(jù)去重的三種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • SELinux導(dǎo)致PHP連接MySQL異常Can''t connect to MySQL server的解決方法

    SELinux導(dǎo)致PHP連接MySQL異常Can''t connect to MySQL server的解決方法

    這篇文章主要介紹了SELinux導(dǎo)致PHP連接MySQL異常Can't connect to MySQL server的解決方法,有2種,一是設(shè)置允許,二是關(guān)閉SELinux,需要的朋友可以參考下
    2014-07-07
  • wampserver下mysql導(dǎo)入數(shù)據(jù)庫的步驟

    wampserver下mysql導(dǎo)入數(shù)據(jù)庫的步驟

    這篇文章主要介紹了wampserver下mysql導(dǎo)入數(shù)據(jù)庫的步驟,需要的朋友可以參考下
    2016-08-08
  • mysql語句性能分析工具之profiling用法

    mysql語句性能分析工具之profiling用法

    這篇文章主要介紹了mysql語句性能分析工具之profiling用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • MySQL存儲數(shù)據(jù)亂碼的問題解析

    MySQL存儲數(shù)據(jù)亂碼的問題解析

    這篇文章主要介紹了MySQL存儲數(shù)據(jù)亂碼的問題解析,作者從實(shí)際使用中的多個方面定位其原因然后解決,需要的朋友可以參考下
    2015-05-05
  • 淺談MySQL存儲過程中declare和set定義變量的區(qū)別

    淺談MySQL存儲過程中declare和set定義變量的區(qū)別

    下面小編就為大家?guī)硪黄獪\談MySQL存儲過程中declare和set定義變量的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • MySQL內(nèi)存表的特性與使用介紹

    MySQL內(nèi)存表的特性與使用介紹

    臨時表和內(nèi)存表都可以人工創(chuàng)建,但臨時表更多的作用是系統(tǒng)自己創(chuàng)建后,組織數(shù)據(jù)以提升性能,如子查詢,臨時表在多個連接之間不能共享。這里只討論內(nèi)存表
    2013-02-02
  • MySQL中replace into語句的用法詳解

    MySQL中replace into語句的用法詳解

    這篇文章主要介紹了MySQL中replace into語句的用法詳解,本文講解了replace into語句的多種寫法,replace into語句的作用等內(nèi)容,需要的朋友可以參考下
    2014-08-08
  • SpringBoot連接MySQL獲取數(shù)據(jù)寫后端接口的操作方法

    SpringBoot連接MySQL獲取數(shù)據(jù)寫后端接口的操作方法

    今天通過本文給大家介紹SpringBoot連接MySQL獲取數(shù)據(jù)寫后端接口的操作方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-11-11
  • MySQL中InnoDB的Memcached插件的使用教程

    MySQL中InnoDB的Memcached插件的使用教程

    這篇文章主要介紹了MySQL中InnoDB的Memcached插件的使用教程,借助MySQL本身的復(fù)制功能,我們可以說變相地實(shí)現(xiàn)Memcached的復(fù)制需要的朋友可以參考下
    2015-05-05

最新評論