設(shè)置某字段為當(dāng)前時(shí)間,修改日期類型為timestamp并允許空,如下:
成都創(chuàng)新互聯(lián)公司專注于東營(yíng)區(qū)企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),成都做商城網(wǎng)站。東營(yíng)區(qū)網(wǎng)站建設(shè)公司,為東營(yíng)區(qū)等地區(qū)提供建站服務(wù)。全流程按需定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
CREATE
TABLE
`test`
(`aaaa`
varchar(50)
NOT
NULL,`createday`
timestamp
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP)
ENGINE=InnoDB
DEFAULT
CHARSET=utf8;
如果是在navicat下操作的話,設(shè)置字段的類型為timestamp,默認(rèn)值寫上
CURRENT_TIMESTAMP.
可以了解一下MySQL的時(shí)間戳(Timestamp)數(shù)據(jù)類型:
默認(rèn)時(shí)間戳(Timestamp)類型的取值范圍為'1970-01-01 00:00:01' UTC至'2038-01-19 03:14:07' UTC,數(shù)據(jù)精確到秒級(jí)別,該取值范圍包含約22億個(gè)數(shù)值,因此在MySQL內(nèi)部使用4個(gè)字節(jié)INT類型來存放時(shí)間戳數(shù)據(jù):
1、在存儲(chǔ)時(shí)間戳數(shù)據(jù)時(shí),先將本地時(shí)區(qū)時(shí)間轉(zhuǎn)換為UTC時(shí)區(qū)時(shí)間,再將UTC時(shí)區(qū)時(shí)間轉(zhuǎn)換為INT格式的毫秒值(使用UNIX_TIMESTAMP函數(shù)),然后存放到數(shù)據(jù)庫中。
2、在讀取時(shí)間戳數(shù)據(jù)時(shí),先將INT格式的毫秒值轉(zhuǎn)換為UTC時(shí)區(qū)時(shí)間(使用FROM_UNIXTIME函數(shù)),然后再轉(zhuǎn)換為本地時(shí)區(qū)時(shí)間,最后返回給客戶端。
(Timestamp)時(shí)間戳列可以有四張組合定義,其含義分別為:
1、當(dāng)字段定義為timestamp,表示該字段在插入和更新時(shí)都不會(huì)自動(dòng)設(shè)置為當(dāng)前時(shí)間。
2、當(dāng)字段定義為timestamp DEFAULT CURRENT_TIMESTAMP,表示該字段僅在插入且未指定值時(shí)被賦予當(dāng)前時(shí)間,再更新時(shí)且未指定值時(shí)不做修改。
3、當(dāng)字段定義為timestamp ON UPDATE CURRENT_TIMESTAMP,表示該字段在插入且未指定值時(shí)被賦值為"0000-00-00 00:00:00",在更新且未指定值時(shí)更新為當(dāng)前時(shí)間。
4、當(dāng)字段定義為timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,表示該字段在插入或更新時(shí)未指定值,則被賦值為當(dāng)前時(shí)間。
CREATE TABLE borrow (
rid VARCHAR(50) NOT NULL PRIMARY KEY,
bid VARCHAR(50) NOT NULL,
lendDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '借書日期為當(dāng)前日期',
willDate DATE DEFAULT DATE_ADD(lendDate,INTERVAL 30 DAY) not NULL COMMENT '設(shè)定最遲還書日期為借書日期后30天',
returnDate DATETIME
);
修改日期類型為timestamp 并允許空,如下:
CREATE TABLE `test` (`aaaa` varchar(50) NOT NULL,`createday` timestamp NULL DEFAULT
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT
CHARSET=utf8;
如果是在navicat下操作的話,設(shè)置字段的類型為timestamp,默認(rèn)值寫上CURRENT_TIMESTAMP
擴(kuò)展資料
mysql中的時(shí)間類型:
mysql中我們用的時(shí)間類型有DATE DATETIME TIME TIMESTAMP四種:
1、DATE只表示日期,檢索以YYYY-MM-DD的格式顯示,范圍是1000-01-01到9999-12-31。
2、TIME只表示時(shí)間,檢索以HH:MM:SS格式顯示,范圍是00:00:00到23:59:59。
3、DATETIME表示了日期和時(shí)間,檢索以YYYY-MM-DD HH:MM:SS格式顯示。
4、TIMESTAMP和DATETIME表示格式一樣兩者的不同點(diǎn)如下:
當(dāng)使用timestamp的時(shí)候,數(shù)據(jù)有更新的時(shí)候這個(gè)字段自動(dòng)更新為當(dāng)前時(shí)間,所以可以作為lastmodify使用,這個(gè)變化是默認(rèn)設(shè)置,如果想使時(shí)間不更新可以設(shè)置DEFAULT CURRENT_TIMESTAMP
timestamp的范圍不能早于1970或者晚于2037,超過這個(gè)時(shí)間范圍的話為0。
timestamp存儲(chǔ)的時(shí)候是轉(zhuǎn)為UTC存儲(chǔ)的,獲取的時(shí)候根據(jù)客戶端所在時(shí)區(qū)進(jìn)行展示。
timestamp占4個(gè)字節(jié),datetime占8個(gè)字節(jié)。
mysql的字段默認(rèn)值不可以是函數(shù)。除
timestamp字段可以用current_timestamp外。其它都使用常數(shù)為默認(rèn)值。
下面的例子是:在名字為database的表中插入一個(gè)名為addtime的字節(jié),并且默認(rèn)值為當(dāng)前時(shí)間。
alter
table
`database`add
addtime
timestamp
not
null
default
current_timestamp()
;
database是表名,
addtime是字段名,
timestamp是類型,
not
null表明不能為空,
default
current_timestamp()默認(rèn)時(shí)間為當(dāng)前時(shí)間。
樓上說得對(duì)。如果是用PHP,可以用time()函數(shù)或date函數(shù)來達(dá)到你的目的。