日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql timestamp 用法_MYSQL timestamp用法

發布時間:2025/3/19 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。