mysql timestamp 用法_MYSQL timestamp用法
問(wèn)題來(lái)源
在業(yè)務(wù)系統(tǒng)中,有時(shí)候想要知道用戶最后一次活動(dòng)距離現(xiàn)在的時(shí)間。記得mysql是有這樣的字段的,可以直接在一條記錄更新時(shí),自動(dòng)更新時(shí)間。上網(wǎng)查了查,找到了,是timestamp類型。
用法
在表中定義一個(gè)timestamp類型的字段,如下所示:
create table test(
id integer primary key auto_increment,
name varchar(256) not null,
createdAt timestamp default current_timestamp on update current_timestamp
);
createdAt字段被定義為timestamp類型,而且默認(rèn)值是當(dāng)前時(shí)間戳,當(dāng)記錄發(fā)生更新時(shí),該字段同時(shí)會(huì)更新為當(dāng)前時(shí)間戳。timestamp等于是提供了對(duì)一條對(duì)數(shù)據(jù)自身修改時(shí)間的記錄。
依據(jù)不同的場(chǎng)景,一般timestamp會(huì)有幾類用法:
在記錄創(chuàng)建和修改時(shí)都刷新
參見(jiàn)上面的例子,在sql語(yǔ)句上,要同時(shí)注明default字段和on update字段。
createdAt timestamp default current_timestamp on update current_timestamp
只在記錄創(chuàng)建時(shí)刷新時(shí)間,以后修改時(shí)不再刷新
如下所示,在定義字段時(shí)刪去on update語(yǔ)句。
createdAt timestamp default current_timestamp
在創(chuàng)建時(shí)將字段設(shè)置為0,以后修改時(shí)刷新
只有on update語(yǔ)句。
createdAt timestamp on update current_timestamp
在創(chuàng)建時(shí)給一個(gè)定值,修改時(shí)刷新
只有on update語(yǔ)句。
createdAt timestamp DEFAULT ‘yyyy-mm-dd hh:mm:ss' on update current_timestamp
這樣,在記錄發(fā)生變化時(shí),可以根據(jù)需要記錄時(shí)間戳。
字段更新值和原值一樣的情況
假定我們更新了表的某個(gè)字段,例如name屬性,createdAt也可以相應(yīng)刷新。但是有一種情況例外,就是如果更新值和原值一樣,mysql出于優(yōu)化考慮,并不會(huì)執(zhí)行任何操作。此時(shí),為了記錄時(shí)間,可以強(qiáng)制刷新時(shí)間戳。
update table test set name = '', createdAt = current_timestamp where id = 1;
讀取時(shí)間戳
如果要讀出時(shí)間戳,又該怎么使用呢?
select unix_timestamp(createdAt) as tt from test
如上所示,該語(yǔ)句可以讀出來(lái)以秒為單位的時(shí)間戳,然后就可以進(jìn)行各種比較和運(yùn)算了
總結(jié)
以上是生活随笔為你收集整理的mysql timestamp 用法_MYSQL timestamp用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: tabbar怎么些_vue 做的tabB
- 下一篇: mysql模糊查询后分页_jsp模糊查询