Ⅰ 資料庫中 日期的幾種表示方法
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)資料庫怎麼選時間類型擴展閱讀
切記不要用字元串存儲日期
這種存儲日期的方式的優點還是有的,就是簡單直白,容易上手。但是,這是不正確的做法,主要會有下面兩個問題:
1、字元串佔用的空間更大。
2、字元串存儲的日期比較效率比較低(逐個字元進行比對),無法用日期相關的 API 進行計算和比較。
DateTime 類型沒有時區信息的
DateTime 類型是沒有時區信息的(時區無關),DateTime 類型保存的時間都是當前會話所設置的時區對應的時間。
當你的時區更換之後,比如你的伺服器更換地址或者更換客戶端連接時區設置的話,就會導致你從資料庫中讀出的時間錯誤。不要小看這個問題,很多系統就是因為這個問題鬧出了很多笑話。
Timestamp 和時區有關。Timestamp 類型欄位的值會隨著伺服器時區的變化而變化,自動換算成相應的時間,說簡單點就是在不同時區,查詢到同一個條記錄此欄位的值會不一樣。
Ⅱ 資料庫的日期型數據應該用什麼類型接受
1、如果資料庫中存儲時間的數據類型為datetime,那就避免在後台代碼(*.aspx.cs)中轉化時間格式,將格式轉化的任務放到界面代碼(*.aspx)上。
無論獲取的時間是什麼格式的,在後台不要對這個時間的值進行任何操作(比如賦值等,否則系統會將時間隱式轉換),而是直接在界面代碼(*.aspx)用DataBinder、Eval等方法來直接進行格式化:
後台關鍵代碼:
<span style="white-space:pre"> </span>DataTable dt = new NewsManager().SelectById(newsid); //這里得到的dt為從直接資料庫中查詢到的數據
<span style="white-space:pre"> </span> repNews.DataSource =dt;
repNews.DataBind();
前台關鍵代碼:
<span style="white-space:pre"> </span><asp:Repeater ID="repNews" runat="server">
<ItemTemplate>
<p class="con_time">
發布時間:
<%# DataBinder.Eval(Container.DataItem,"createTime","{0:yyyy-MM-dd HH:mm:ss}") %> <%--此處createTime為上面dt中的欄位名--%>
</p>
</ItemTemplate>
</asp:Repeater>
Ⅲ 如何在資料庫輸入時間類型
可將時間類型定義為datetime,然後以字元串的形式插入即可。
如:
創建表:
createtabletest
(idint,
createtimedatetime)
插入數據:
insertintotestvalues(1,'2015-08-01')
插入後結果如圖: