1. 程式人生 > >MySQL 時間型別datetime欄位 精確到毫秒問題

MySQL 時間型別datetime欄位 精確到毫秒問題

今天遇到一個小問題,計算一筆操作的執行時間,操作前先用LocalDateTime(本人是Java開發者)記錄開始時間且寫入資料庫,操作完成後計算操作完成時間和開始時間的時間差,結果算出來出現了負數結果。

在日誌中打印出來,發現結果是從資料庫取出的開始時間後三位毫秒都是0,而java的api取出來的當前時間是具體的數值,所以就出現了負數結果,用了幾年sybase沒發現這個問題。

解決辦法:

建表時指定datetime型別的欄位長度,DATETIME(3)是保留3位毫秒數,修改後解決該問題。

相關推薦

MySQL 時間型別datetime 精確毫秒問題

今天遇到一個小問題,計算一筆操作的執行時間,操作前先用LocalDateTime(本人是Java開發者)記錄開始時間且寫入資料庫,操作完成後計算操作完成時間和開始時間的時間差,結果算出來出現了負數結果。 在日誌中打印出來,發現結果是從資料庫取出的開始時間後三位毫秒都是0,而

mysql取time ,datetime顯示問題

這次新需求要新增資料夾,搞了幾天終於搞明白一點了, 在此和大家分享一下我遇到的問題,希望以後大家能夠少走一下彎路。 由於我們框架用的是ssh,對SQL語句有些不支援,只支援hql,所以首先的查詢兩張表中的一些有用欄位,一張表是  user_video_folder  另一

MySQL資料型別屬性

MySQL 資料型別MySQL中定義資料欄位的型別對你資料庫的優化是非常重要的。MySQL支援多種型別,大致可以分為三類: 數值 日期/時間 字串(字元) 數值型別 MySQL支援所有標準SQL數值資料型別。 這些型別包括嚴格數值資料型別(IN

MYSQL查詢通過date型別查詢一段時間記錄

select * from wap_content where week(created_at) = week(now)   如果你要嚴格要求是某一年的,那可以這樣   查詢一天:   select * from table where to_d

mysql 時間型別精確毫秒、微秒及其處理

一、MySQL 獲得毫秒、微秒及對毫秒、微秒的處理 MySQL 較新的版本中(MySQL 6.0.5),也還沒有產生微秒的函式,now() 只能精確到秒。 MySQL 中也沒有儲存帶有毫秒、微秒的日期時間型別。 但,奇怪的是 MySQL 已經有抽取(extract)微秒的函式。例如: select mi

VC++中ADO方式訪問資料庫datetime(不帶毫秒時間與帶毫秒時間

    //取得列名    bstrColName = m_pRSet->GetFields()->Item[nCol]->GetName() ;    strColname = (char*)bstrColName ;    //取得當前行當前列值    varCounter.lVal =

MySQL資料庫中有型別是日期、時間的插入語句的寫法處理

MySQL資料庫中,與時間有關的型別有 DATE,TIME,TIMESTAMP: 時間戳mysql> create table ts(f1 TIMESTAMP); Query OK, 0

JAVA從MySQL取出datetime型別輸出後多了個".0"

問題描述 Java讀取Oracle/MySQL資料庫中的Date日期去掉時間後面的.0 解決方案 <%@ taglib prefix="fn" uri="http://java.sun.

mysql 時間儲存毫秒

一. 注意點 0. 資料庫版本的選定     5.6.4以上 1.  資料庫jdbc驅動版本的選定     5.6.4以上版本資料庫對應的jdbc驅動, 如果驅動版本過低, 會把毫秒給截斷,

mysql 時間型別精確毫秒、微秒及其處理

select * from test where DATE_FORMAT(timess,'%Y-%m-%d %T:%f') between DATE_FORMAT('2010-12-01 06:03:16.233','%Y-%m-%d %T:%f') and DATE_FORMAT('2010-12-01

JDBC為MySql新增datetime型別資料

當PreparedStatement物件使用setDate()方法來新增日期時間型別的資料時,Date型別的值只有日期,時間預設為0。所以使用此方法為mysql新增datetime型別的資料,時間均為00:00:00。 可以使用setTimestamp()方法來新增date

Mysql中對字串型別進行數字值排序

ORDER BY `meta_value` 那麼按得分排序得到的結果可能是: 1 10 11 123 1234 2 25 253 3      由於是按字母順序排列,所以123排在了2的前面,顯然不符合我們的要求,那麼怎樣才能按照我們預想的數字順序

mysql如何將一個多個型別串成一個字串?

結論 先說結論,可以使用group_concat group by的組合實現多行變一行,將一個欄位的多個型別串成一個欄位 需求: 如題,一個欄位如電影類別,一部電影可以是多個類別,如喜劇、動作片等,其形式可以是這樣的1::Toy Story (1995)::Animation

MySQL中Date和DateTime與mybatis的對應關係

MySQL中Date和DateTime欄位與mybatis的對應關係 在MySQL欄位中有Date和DateTime型別,但是java中沒有DateTime型別。 解決辦法: (1)在mybatis插入資料時只要將實體的屬性設定成Timestamp就會對應mysql的DateTime型別

java生成mysql資料庫建表語句、型別註釋,可實現不用mysqldump備份資料庫

使用 mysqldump 備份資料庫也是可行的,因為每次備份的時候都需要mysqldump這個檔案, 我在windows備份時沒問題,但是放到linux上面時,centos系統死活不認這個檔案,但又不想裝mysql,一氣之下自己研究了個不需要mysqldump就可以備份的程式, 如果看了以下程式

mysql 優化系列之型別選取

mysql  優化是一個很有意思的話題,可以從很多方面來說,大到伺服器叢集,應用體系架構等,小到欄位型別選擇,儲存引擎的選擇等,隨著mysql的發展,到目前(最新版本是8.0,筆者5.7)Innodb 已是預設的儲存引擎(mysql 5.5 已將InnoDB作為預設儲存引擎)

MYSQL資料庫 的 decimal 型別 和 Java 的BigDecimal

mysql中的decimal , 在java中的用BigDecimal表示的。   decimal decimal(18,0) 18是定點精度,0是小數位數。 decimal(a,b) a指定指定小數點左邊和右邊可以儲存的十進位制數字的最大個數,最大精度38。 b指定

mysql 排序兩個/列表先根據時間升序排序,時間相同再根據商家ID升序排序

select * from (select * from tablename order by last_time desc) as t order by t.id desc order   by   last_time,id   desc 這種方式last_tim

MySQL時間型別DATETIME、TIMESTAMP、DATE、TIME、YEAR

1.幾個的區別 詳細可以參考:https://www.cnblogs.com/Jie-Jack/p/3793304.html 2.針對時間型別的一些操作 nodejs支援多種格式轉換為時間戳: var str1 = "2017-01-19 13:00:00"; va

mysql:把IP存進數字型別——查詢提速優化

1.在java後端把ip字串轉成long型別的處理工具方法: public static long ip2long(String ip) { String[] p = ip.split("\\."); if (p.length != 4) return 0; i