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