應(yīng)用場景
- 在數(shù)據(jù)表中,要記錄的每條數(shù)據(jù)是什么時(shí)候創(chuàng)建的,不需要應(yīng)用程序去特意記錄,而是由數(shù)據(jù)庫獲取當(dāng)前時(shí)間自動(dòng)記錄創(chuàng)建時(shí)間。
- 在數(shù)據(jù)庫中,要記錄每條數(shù)據(jù)是什么時(shí)候修改的,不需要應(yīng)用程序去特意記錄,而由數(shù)據(jù)庫獲取當(dāng)前時(shí)間自動(dòng)記錄修改時(shí)間。
在數(shù)據(jù)庫中獲取當(dāng)前時(shí)間
- oracle:select sysdate from dual;
- sqlserver:select getdate();
- mysql:select sysdate(); select now();
MySQL中時(shí)間函數(shù)NOW()和SYSDATE()的區(qū)別
NOW()取的是語句開始執(zhí)行的時(shí)間,SYSDATE()取的是動(dòng)態(tài)的實(shí)時(shí)時(shí)間。
因?yàn)镹OW()取自mysql的一個(gè)變量”TIMESTAMP”,而這個(gè)變量在語句開始執(zhí)行的時(shí)候就設(shè)定好了,因此在整個(gè)語句執(zhí)行過程中都不會(huì)變化。
執(zhí)行下面這個(gè)例子就明白了:
SELECT NOW(),SYSDATE(),SLEEP(3),NOW(),SYSDATE()
先查詢了NOW()和SYSDATE(),然后sleep了3秒,再查詢NOW()和SYSDATE(),結(jié)果如下:

實(shí)現(xiàn)方式
- 將字段類型設(shè)為 TIMESTAMP。
- 將默認(rèn)值設(shè)為 CURRENT_TIMESTAMP。
舉例應(yīng)用
創(chuàng)建一個(gè)表time,主鍵為id,其中一個(gè)字段為date,默認(rèn)系統(tǒng)當(dāng)前時(shí)間:
CREATE TABLE time(
id INT PRIMARY KEY,
date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
插入一條數(shù)據(jù):
INSERT INTO time(id) VALUES(1);
查詢結(jié)果:

到此這篇關(guān)于MySQL表字段時(shí)間設(shè)置默認(rèn)值的文章就介紹到這了,更多相關(guān)MySQL 字段時(shí)間默認(rèn)值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- MySQL 字段默認(rèn)值該如何設(shè)置
- mysql查詢的時(shí)候給字段賦默認(rèn)值操作
- MySQL命令行中給表添加一個(gè)字段(字段名、是否為空、默認(rèn)值)
- MySQL表字段設(shè)置默認(rèn)值(圖文教程及注意細(xì)節(jié))