mysql中的時間格式為 MySQL的日期格式

2021-10-17 11:29:17 字數 3291 閱讀 8338

mysql的五種時間和日期型別

year表示年份:位元組數為1,取值範圍為「1901——2155」

date表示日期:位元組數為4,取值範圍為「1000-01-01——9999-12-31」

datetime和timestamp表示日期和時間

datetime:位元組數為8,取值範圍為「1000-01-01 00:00:00——9999-12-31 23:59:59」

timestamp,位元組數為4,取值範圍為「19700101080001——20380119111407」

給各種時間日期型別賦值

1.給year賦值有3種方式

方式一:

直接插入4位字串("1998")或者4位數字(1998)

方式二:

插入兩位字串("04")

如果範圍是"00"-"69",則相當於插入"2000"-"2069"

如果範圍是"70"-"99",則相當於插入"1970"-"1999"

**注:"0"和"00"的效果一樣都表示2023年**

方式三:

插入兩位數字(90)

插入數字和插入字元的區別在於,插入一位0表示的不是2023年,而是0000.

2.給time賦值

time型別表示為「時:分:秒」,儘管小時範圍一般是0~23,但是為了表示某些特殊時間間隔,mysql將time的小時範圍擴發了,而且支援負值。

標準格式是"hh:mm:ss",但是不一定是這種格式,可以是"d hh:mm:ss"、"hh:mm"、"ss"、"d hh"、"d hh:mm"

"d hh:mm:ss"相當於是"(d*24+hh):mm:ss"

eg:插入的是"2 23:50:50"="71:50:50"

"hh:mm"

eg:"11:25"="11:25:00"

"ss"

eg:"30"="00:00:30"

3.給date賦值

標準格式是"yyyy-mm-dd"、其他的還有"yyyy@mm@dd"、"yyyy.mm.dd"等

還可以用"yy-mm-dd"

4.給datetime賦值

標準格式為"yyyy-mm-dd hh:mm:ss"

具體賦值方法與上面各種型別的方法相似。

5.給timestamp賦值

timestamp的取值範圍比較小,沒有datetime的取值範圍大,因此輸入值時一定要保證在timestamp的範圍之內。它的插入也與插入其他日期和時間資料型別類似。

**插入當前時間

第一,可以使用current_timestamp;

第二,輸入null,系統自動輸入當前的timestamp;

第三,無任何輸入,系統自動輸入當前的timestamp。

6.當 mysql遇到乙個日期或時間型別的超出範圍或對於該型別不合法的值時,它將該值轉換為該類的"零"值。

列型別:"零"值

datetime:'0000-00-00 00:00:00'

date:'0000-00-00'

timestamp:00000000000000

time:'00:00:00'

year:0000

datetime和timestamp的區別

datetime

1. 占用8個位元組

2. 允許為空值,可以自定義值,系統不會自動修改其值。

3. 實際格式儲存

4. 與時區無關

5. 不可以設定預設值,所以在不允許為空值的情況下,必須手動指定datetime欄位的值才可以成功插入資料。

6. 可以在指定datetime欄位的值的時候使用now()變數來自動插入系統的當前時間。

結論:datetime型別適合用來記錄資料的原始的建立時間,因為無論你怎麼更改記錄中其他欄位的值,datetime欄位的值都不會改變,除非你手動更改它。

timestamp

1. 占用4個位元組

2. 允許為空值,但是不可以自定義值,所以為空值時沒有任何意義。

3. timestamp值不能早於1970或晚於2037。這說明乙個日期,例如'1968-01-01',雖然對於datetime或date值是有效的,但對於timestamp值卻無效,如果分配給這樣乙個物件將被轉換為0。

4. 值以utc格式儲存

5. 時區轉化 ,儲存時對當前的時區進行轉換,檢索時再轉換回當前的時區。

6. 預設值為current_timestamp(),其實也就是當前的系統時間。

7. 資料庫會自動修改其值,所以在插入記錄時不需要指定timestamp欄位的名稱和timestamp欄位的值,你只需要在設計表的時候新增乙個timestamp欄位即可,插入後該字段的值會自動變為當前系統時間。

8. 若是設定了**on update current_timestamp**以後任何時間修改表中的記錄時,對應記錄的timestamp值會自動被更新為當前的系統時間。

結論:timestamp型別適合用來記錄資料的最後修改時間,因為只要你更改了記錄中其他欄位的值,timestamp欄位的值都會被自動更新。

timestamp的預設值

自動update 和insert 到當前的時間

'create_time' timestamp not null default **current_timestamp** **on update current_timestamp**

自動insert 到當前時間,不過不自動update

'create_time' timestamp not null default **current_timestamp**

**current_timestamp**

系統時間

**on update current_timestamp**

修改現有記錄的時候都對這個資料列重新整理

[timestamp的預設值](

[timestamp的預設值2](

慧聘中的實際應用

拿慧聘專案職位表為例:

我們需要記錄職位的建立時間和最新的更新時間。建立時間只在insert的時候新建乙個時間戳,而更新時間則是,只要有對這條資料的更新操作,就更改時間戳。

timestamp的on update current_timestamp屬性,會讓資料庫來幫我們在update的時候自動更新時間。

注意:圖形化介面來建立表的時候,預設值都是null,不是current_timestamp。就是說資料庫不會自動在insert的時候,插入當前時間戳。

![cmd-markdown-logo](

圖形化介面的自動update,需要勾選上圖中的 根據當前時間戳更新選項

mysql檢視表的建立sql

show create table base_user

mysql時間顯示格式 MySQL 中時間格式相關

datetime型別用在你需要同時包含日期和時間資訊的值時。mysql檢索並且以 yyyy mm dd hh mm ss 格式顯示datetime值 date型別用在你僅需要日期值時,沒有時間部分。mysql檢索並且以 yyyy mm dd 格式顯示date值 自動更新第乙個timestamp列在下...

mysql中 變數 MYSQL中的變數 MySQL

bitscn.com 只記很基礎的知識,細節東西太麻煩了,而且我也用不到。變數分為使用者變數與系統變數。使用者變數 使用者變數與資料庫連線有關,在這個連線中宣告的變數,在連線斷開的時候,就會消失。在此連線中宣告的變數無法在另一連線中使用。使用者變數的變數名的形式為 varname的形式。名字必須以 ...

mysql的時間格式

mysql 的時間格式分為三種,1.time 2.timestamp 3.datestime timestamp m 時間戳。範圍是 1970 01 01 00 00 00 到2037年。timestamp列用於insert或update操作時記錄日期和時間。如果你不分配乙個值,表中的第乙個time...