㈠ 資料庫中 日期的幾種表示方法
Mysql中經常用來存儲日期的數據類型有三種:Date、Datetime、Timestamp。
【1】Date數據類型:用來存儲沒有時間的日期。Mysql獲取和顯示這個類型的格式為「YYYY-MM-DD」。支持的時間范圍為「1000-00-00」到「9999-12-31」。
【2】Datetime類型:存儲既有日期又有時間的數據。存儲和顯示的格式為 「YYYY-MM-DD HH:MM:SS」。支持的時間范圍是「1000-00-00 00:00:00」到「9999-12-31 23:59:59」。
【3】Timestamp類型:也是存儲既有日期又有時間的數據。存儲和顯示的格式跟Datetime一樣。支持的時間范圍是「1970-01-01 00:00:01」到「2038-01-19 03:14:07」。
(1)date資料庫中格式擴展閱讀
切記不要用字元串存儲日期
這種存儲日期的方式的優點還是有的,就是簡單直白,容易上手。但是,這是不正確的做法,主要會有下面兩個問題:
1、字元串佔用的空間更大。
2、字元串存儲的日期比較效率比較低(逐個字元進行比對),無法用日期相關的 API 進行計算和比較。
DateTime 類型沒有時區信息的
DateTime 類型是沒有時區信息的(時區無關),DateTime 類型保存的時間都是當前會話所設置的時區對應的時間。
當你的時區更換之後,比如你的伺服器更換地址或者更換客戶端連接時區設置的話,就會導致你從資料庫中讀出的時間錯誤。不要小看這個問題,很多系統就是因為這個問題鬧出了很多笑話。
Timestamp 和時區有關。Timestamp 類型欄位的值會隨著伺服器時區的變化而變化,自動換算成相應的時間,說簡單點就是在不同時區,查詢到同一個條記錄此欄位的值會不一樣。
㈡ SQL 中 date 與datetime的區別
區別1:
①date類型可用於需要一個日期值而不需要時間部分時;
②datetime類型:可用於需要同時包含日期和時間信息的值。
區別2:
①date:MySQL 以 'YYYY-MM-DD' 格式檢索與顯示date值;
②datetime:MySQL 以 'YYYY-MM-DD HH:mm:ss'格式檢索與顯示 DATETIME 類型。
區別3:
①date類型:支持的范圍是 '1000-01-01' 到'9999-12-31';
②datetime類型:支持的范圍是'1000-01-0100:00:00' 到 '9999-12-3123:59:59'。
㈢ 資料庫中所有的數據類型
SQL 用於各種資料庫抄的數據類型襲:
一、MySQL 數據類型:
在 MySQL 中,有三種主要的類型:Text(文本)、Number(數字)和 Date/Time(日期/時間)類型。
1、Text 類型。
㈣ 資料庫中日期型數據的長度是幾個位元組
資料庫中貨幣型欄位佔8個位元組,另外日期型欄位也佔8個位元組。
「自動編號」型欄位長度為4個位元組;備注型欄位長度為65535個位元組;文本型欄位默認為50個位元組,最長為255個位元組。
㈤ oracle中日期型數據長度有什麼不同
oracle數據類型看起來非常簡單,但用起來會發現有許多知識點,本文是我對ORACLE日期數據類型的一些整理,都是開發入門資料,與大家分享:
註:由於INTERVAL及TIME ZONE實際用得比較少,所以本文內容未涉及這兩個方面。
1、常用日期型數據類型
1.1、DATE
這是ORACLE最常用的日期類型,它可以保存日期和時間,常用日期處理都可以採用這種類型。DATE表示的日期范圍可以是公元前4712年1月1日至公元9999年12月31日
date類型在資料庫中的存儲固定為7個位元組,格式為:
第1位元組:世紀+100
第2位元組:年
第3位元組:月
第4位元組:天
第5位元組:小時+1
第6位元組:分+1
第7位元組:秒+1
1.2、TIMESTAMP(p)
這也是ORACLE常用的日期類型,它與date的區別是不僅可以保
存日期和時間,還能保存小數秒,小數位數可以指定為0-9,默認為6位,所以最高精度可以到ns(納秒),資料庫內部用7或者11個位元組存儲,如果精度為
0,則用7位元組存儲,與date類型功能相同,如果精度大於0則用11位元組存儲。
格式為:
第1位元組:世紀+100
第2位元組:年
第3位元組:月
第4位元組:天
第5位元組:小時+1
第6位元組:分+1
第7位元組:秒+1
第8-11位元組:納秒,採用4個位元組存儲,內部運算類型為整形
註:TIMESTAMP日期類型如果與數值進行加減運算會自動轉換為DATE型,也就是說小數秒會自動去除。
1.3、DATE與TIMESTAMP類型內部存儲驗證
1 create table T
2 (
3 C1 DATE,
4 C2 TIMESTAMP(9)
5 );
6
7 insert into t(c1,c2) values(date'2010-2-12',timestamp'2010-2-12 13:24:52.234123211');
8 insert into t(c1,c2) values(
9 to_date('2010-2-12 10:20:30','YYYY-MM-DD HH24:MI:SS'),
10 to_timestamp('2010-2-12 13:24:52.123456','YYYY-MM-DD HH24:MI:SS.FF6')
11 );
12
13 SQL> select c1,mp(c1) c1_d,c2,mp(c2) c2_d from t;