mysql資料庫時間類型
『壹』 mysql資料庫里的日期用timestamp還是datetime好
mysql資料庫里的日期用timestamp還是datetime好 (1)4個位元組儲存
(2)值以UTC格式保存
(3)時區轉化 ,存儲時對當前的時區進行轉換,檢索時再轉換回當前的時區。
(4)TIMESTAMP值不能早於1970或晚於2037!
timestamp在資料庫里實際記載的時間是國際標准時間,同一個timestamp值在不同的時區檢索出來的日期時間是不一樣的,因為系統會根據時區的不同進行自動時區轉換,而datetime則不會進行轉換時區轉換,存儲時是什麼日期時間,檢索出來的就是存入時的日期時間,它不會有變化。至於這兩種日期時間類型哪種好是沒有定論的,要根據實際情況和應用需求做出取捨。
請注意由於無需實施時區轉換,系統處理dateime所產生的系統開銷要比timestamp小。
沒什麼好不好的,方便省事才是王道。都用datetime 你說呢,誰在乎那點存儲
類型
類型 存儲需求 格式 時間范圍
datetime 8個位元組 yyyy-mm-dd hh-mm-ss 1000-01-01 00:00:00 到9999-12-31 23:59:59 timestamp 4個位元組 yyyy-mm-dd hh-mm-ss 1970-01-01 00:00:00 到2037-12-31 23:59:59
timestamp類型會有時區變數的影響,跨時區使用時應注意
datetime 8個位元組 yyyy-mm-dd hh-mm-ss 1000-01-01 00:00:00 到9999-12-31 23:59:59
timestamp 4個位元組 yyyy-mm-dd hh-mm-ss 1970-01-01 00:00:00 到2037-12-31 23:59:59
timestamp類型會有時區變數的影響,跨時區使用時應注意
沒什麼好不好的,方便省事才是王道。都用datetime 你說呢,誰在乎那點存儲 類型 類型 存儲需求 格式 時間范圍 datetime 8個位元組
Mysql中經常用來存儲日期的數據類型有2種:Date、Datetime.
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」。
TIMESTAMP列用於INSERT或UPDATE操作時記錄日期和時間。如果你不分配一個值,表中的第一個TIMESTAMP列自動設置為最近操作的日期和時間。也可以通過分配一個NULL值,將TIMESTAMP列設置為當前的日期和時間。
TIMESTAMP值返回後顯示為'YYYY-MM-DDHH:MM:SS'格式的字元串,顯示寬度固定為19個字元。如果想要獲得數字值,應在TIMESTAMP列添加+0。
注釋:MySQL4.1以前使用的TIMESTAMP格式在MySQL5.1中不支持;關於舊格式的信息參見MySQL4.1參考手冊。
datetime
1. 佔用8個位元組
2. 允許為空值,可以自定義值,系統不會自動修改其值。
3. 實際格式儲存(Just stores what you have stored and retrieves the same thing which you have stored.)
4. 與時區無關(It has nothing to deal with the TIMEZONE and Conversion.)
5. 不可以設定默認值,所以在不允許為空值的情況下,必須手動指定datetime欄位的值才可以成功插入數據。
6. 可以在指定datetime欄位的值的時候使用now()變數來自動插入系統的當前時間。
結論:datetime類型適合用來記錄數據的原始的創建時間,因為無論你怎麼更改記錄中其他欄位的值,datetime欄位的值都不會改變,除非你手動更改它。
timestamp
1. 佔用4個位元組
2. 允許為空值,但是不可以自定義值,所以為空值時沒有任何意義。
3. TIMESTAMP值不能早於1970或晚於2037。這說明一個日期,例如'1968-01-01',雖然對於DATETIME或DATE值是有效的,但對於TIMESTAMP值卻無效,如果分配給這樣一個對象將被轉換為0。
4.值以UTC格式保存( it stores the number of milliseconds)
5.時區轉化 ,存儲時對當前的時區進行轉換,檢索時再轉換回當前的時區。
6. 默認值為CURRENT_TIMESTAMP(),其實也就是當前的系統時間。
7. 資料庫會自動修改其值,所以在插入記錄時不需要指定timestamp欄位的名稱和timestamp欄位的值,你只需要在設計表的時候添加一個timestamp欄位即可,插入後該欄位的值會自動變為當前系統時間。
8. 以後任何時間修改表中的記錄時,對應記錄的timestamp值會自動被更新為當前的系統時間。
結論:timestamp類型適合用來記錄數據的最後修改時間,因為只要你更改了記錄中其他欄位的值,timestamp欄位的值都會被自動更新。
看完這個比較你就知道用哪個好啦
我們公司一般用datatime,可控性比較強
jdbc查詢Mysql資料庫的日期問題
你沒說錯!
查出來可以保存為String類型 具體轉化一下就OK了
BBSXP 用的MYSQL資料庫還是MSSQL資料庫
BBSXP同時支持Aess資料庫和MSSQL資料庫
在Config.asp文件里定義:
IsSqlDataBase=1 '定義資料庫類別,0為Aess資料庫,1為SQL資料庫
不知道你是哪個版本,在BBSxp 2008 SP2里Config.asp文件在根目錄下。內容如下:
<%
InstallIPAddress="127.0.0.1" '安裝BBSXP的IP地址,針對install.asp的訪問許可權
TablePrefix="BBSXP_" '資料庫表的前輟名(一般不用更改)
IsSqlDataBase=0 '定義資料庫類別,0為Aess資料庫,1為SQL資料庫
If IsSqlDataBase=0 Then
'''''''''''''''''''''''''''''' Aess資料庫設置 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SqlDataBase = "database/bbsxp2008.mdb" '資料庫路徑
SqlProvider = "Microsoft.Jet.OLEDB.4.0" '驅動程序[ Microsoft.Jet.OLEDB.4.0 Microsoft.ACE.OLEDB.12.0 ]
SqlPassword = "" 'ACCESS資料庫密碼
Connstr="Provider="&SqlProvider&";Jet Oledb:Database Password="&SqlPassword&"; Data Source="&Server.MapPath(SqlDataBase)
SqlNowString="Now()"
SqlChar="'"
IsSqlVer="ACCESS"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Else
'''''''''''''''''''''''''''''' SQL資料庫設置 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SqlLocalName = "(local)" '連接IP [ 本地用 (local) 外地用IP ]
SqlUserName = "sa" 'SQL用戶名
SqlPassword = "1234" 'SQL用戶密碼
SqlDataBase = "bbsxp" '資料庫名
SqlProvider = "SQLOLEDB" '驅動程序 [ SQLOLEDB SQLNCLI ]
ConnStr="Provider="&SqlProvider&"; User ID="&SqlUserName&"; Password="&SqlPassword&"; Initial CataLog="&SqlDataBase&"; Data Source="&SqlLocalName&";"
SqlNowString="GetDate()"
IsSqlVer="MSSQL"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End If
'''''''''''''''''''''''''' 以下為專業人員設置選項,普通用戶請勿修改 ''''''''''''''''''''''''''
Session.CodePage="936" '936(簡體中文) 950(繁體中文) 65001(Unicode)
BBSxpCharset="GB2312" 'GB2312(簡體中文) Big5(繁體中文) UTF-8(Unicode)
Response.Charset=BBSxpCharset
Response.Buffer=True
%>
註:
上面bbsxp7b1版本用的是Aess資料庫,因為IsSqlDataBase=0
mysql資料庫可以修改表的日期格式嗎
日期型的欄位 存儲的格式是固定的不可以修改, 需要輸出時 轉換成需要的格式, 如果你不想輸出時轉換 那麼需要 設為字元型的, 存儲時轉換. 總之 不管先轉還是後轉 ,一定要轉
『貳』 mysql資料庫里的日期用timestamp還是datetime好
Mysql中經常用來存儲日期的數據類型有2種:Date、Datetime.
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」。