一、用char儲存時間與用datetime有什么區別
1、存儲類型,char的本質是定長字符串,datetime表現是時間類型,本質是int。精度要求相同時,char占用的空間更大。
2、char可以存儲時間的長度和精度可以完全由程序決定,datetime則由數據庫本身決定。
3、作為索引的查詢性能,datetime的存儲類型更短,而且為int類型辨識度更高,在where或join時可以有更好的性能。
所以,datetime更節約空間,有更好的查詢性能,如果datetime的長度或精度不滿足需求,建議存儲bigint類型的時間戳,沒有必要將時間類型存為char。
數據庫日期類型使用Varchar與DateTime優缺點
1、String 存儲比較靈活,你可以存成 2021-1-1 ,也可以存成 2021-01-01 、2021-01.01 隨心所欲,如果只是用來展示出來,不用考慮格式
2、String類型的字節數大小遠大于datetime等類型,造成空間浪費,datetime本質上是雙int型;
3、String類型的日期格式固定,無法像datetime一樣調整顯示格式,不同格式要進行join,需要兩次類型轉換;
4、String類型無法處理時區等信息;
5、因為如果用varchar 來存儲年月日,那么需要10個字節,而date類型只需4個字節,而datetime類型也只需要8個字節,都小于varchar類型。
6、在進行查找、比較時,由于date和datetime本質上存儲在數據庫中是一個數字,所以直接通過數值比較效率很高,而varchar進行比較必需要一個字符一個字符比較,所以速度很慢。如果再想深一點,一條記錄少了幾個字節,關鍵是如果記錄數多,那么總體節省的字節數就會很多,另外,加載到內存后,閘弄的內存更少,同時也只需要更少的IO,查詢速度更快
?數據庫中存儲日期的字段類型到底應該用varchar還是datetime ?這兩種方法各有優勢,datetime可以借用sql函數庫中運算函數,增加了時間在各種運算上的效率;而varchar類型則可以在字符編碼上顯出優勢。在 存儲的時間將來不需要進行大量計算的前提下,可以考慮選擇varchar類型,反之,選擇datetime類型。
正常使用時推薦使用DateTime類型?,而非Varchar類型,因為既然數據庫設計出這個類型還是有它的道理。
延伸閱讀:
二、Navicat是什么
Navicat是一套快速、可靠和全面的數據庫管理工具,專門用于簡化數據庫管理和降低管理成本。Navicat圖形界面直觀,提供簡便的管理方法,設計和操作MySQL、MariaDB、SQL Server、Oracle、PostgreSQL和SQLite的數據。
Navicat提供一個直觀和設計完善的用戶界面,用于創建、修改和管理資料庫的所有對象,例如表、視圖、函數或過程、索引、觸發器和序列。我們的表設計器幫助用戶創建和修改數據庫的表,讓設置高級選項,如關系、限制、觸發器和更多。
使用Navicat瀏覽和修改數據,插入、編輯、刪除數據或復制和粘貼記錄到數據表形式的數據編輯器,Navicat將運行相應的命令(例如INSERT或UPDATE),免除寫復雜的SQL。廣泛的數據編輯工具令編輯工作更為方便,例如外鍵查找、set/enum選擇器和記錄篩選。