當前位置:編程學習大全網 - 行動軟體 - mysql資料庫裏的日期用timestamp還是datetime好

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資料庫可以修改表的日期格式嗎

日期型的欄位 儲存的格式是固定的不可以修改, 需要輸出時 轉換成需要的格式, 如果妳不想輸出時轉換 那麽需要 設為字元型的, 儲存時轉換. 總之 不管先轉還是後轉 ,壹定要轉

  • 上一篇:郵箱地址是什麽意思,怎麽填寫
  • 下一篇:城市達人的介紹
  • copyright 2024編程學習大全網