簡體   English   中英

MySql Server 5.7 沒有在 DATETIME(3) 列上節省毫秒

[英]MySql Server 5.7 not saving milliseconds on DATETIME(3) column

我的 MySQL 服務器在 Armbian Bionic (Ubuntu 18.04.4) 上運行,在 Orange Pi Zero 上運行。 MySQL 服務器版本為 5.7.29。

我創建了一個數據類型為DATETIME(3) ,也就是說,我想以毫秒精度存儲日期和時間。

當我執行INSERT INTO table1 (column1) VALUES ('2020-02-04 12:34:46.789'); 然后我執行SELECT column1 FROM table1; 表明:

2020-02-04 12:34:47

所以看起來它沒有節省毫秒? 但是如果我執行SELECT NOW(3); 表明:

2020-02-04 20:25:33.077

所以它處理毫秒。 有任何想法嗎?

看起來您的列正在使用默認的DATETIME 您可以使用以下查詢查看當前表架構:

DESC table_name

確保您使用DATETIME(3)創建了表:

CREATE TABLE table_name (
  column_name DATETIME(3)
)

您可以確保輸出使用精度。 但是,如果值存儲在DATETIME(3)列中,您只會得到毫秒:

SELECT CAST(column_name AS DATETIME(3)) FROM table_name

dbfiddle.uk 上的演示

我無法解釋這一點。 即使我將列創建為DATETIME(3) ,並且即使在執行DESC table1並獲得回復DATETIME(3) 之后,出於絕望,我還是嘗試使用除 MySql Workbench 之外的另一個數據庫客戶端。 我下載了DBeaver ,並編輯了表格。 我看到 column1 設置為 DATETIME(即使 Workbench 將其顯示為 DATETIME(3))。 所以我做了 DATETIME(3) 現在它可以工作了! 所以它一定是 Workbench 中的一個錯誤,在創建或編輯 DATETIME 列時,它忽略了小數秒說明符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM