MySQL中默認值中用時間函數的問題


今天在上課的時候在測試MSSQL建表的時候 注冊時間默認值用getdate()可以獲取插入值時候的時間create table temp( id int PRIMARY key, in_time datetime NOT NULL default getdate() )

但是在MYSQL建表練習的時候不能用now()進行對應的做法:

create table temp(    id int PRIMARY key,    in_time datetime NOT NULL default now() )

卻不行,最后發現MYSQL中有個數據類型:時間戳timestamp,這個類型如其意思就像郵戳一樣在更改信內容時時郵戳上的時間不會改變,這種類型用來定義注冊時間再好不過了。

做了具體的改動:

create table temp(    id int PRIMARY key,    in_time timestamp NOT NULL default now() )

不過建議用這種做法:

create table temp(    id int PRIMARY key,    in_time timestamp NOT NULL default CURRENT_TIMESTAMP )

如果想在更新表內內容時候默認的時間戳也會便會則在穿件時間字段時候后面加on update CURRENT_TIMESTAMP 即可:

create table temp(    id int PRIMARY key,    in_time timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP )

如果時間戳用在一個固定不變的時間上,比如用戶的注冊時間上那再好不過了,不過這種在數據庫中對時間能否因為需求的變更而變更顯得相當麻煩,因為在不穩定的需求過程中你修改數據庫表結構的代價畢竟比在程序里加一句update in_time(就是更新時間,具體問題具體寫法)更大。

程序設計,按嚴格的執行順序和需求來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM