關(guān)于postgresql?timestamp時(shí)間戳問(wèn)題
postgresql timestamp時(shí)間戳
數(shù)據(jù)庫(kù)的表中有一個(gè)update_time的時(shí)間戳字段,在新增或修改數(shù)據(jù)時(shí)要自動(dòng)獲取當(dāng)前時(shí)間,而不是代碼中手動(dòng)傳入時(shí)間。
postgresql 和mysql的區(qū)別
根據(jù)調(diào)研在mysql中支持當(dāng)前時(shí)間戳的配置CURRENT_TIMESTAMP
此時(shí)改表的結(jié)果是
而postgresql 不支持該配置,即使配置CURRENT_TIMESTAMP也不會(huì)觸發(fā)更新和創(chuàng)建事件
解決方案
postgresql只能采用觸發(fā)器的形式進(jìn)行操作。
創(chuàng)建觸發(fā)器流程:
-- 創(chuàng)建觸發(fā)函數(shù) -- CREATE OR REPLACE FUNCTION update_modified_column() RETURNS TRIGGER AS $$ BEGIN NEW.update_time = now(); RETURN NEW; END; $$ language 'plpgsql'; -- 創(chuàng)建觸發(fā)器 on 后面是對(duì)應(yīng)數(shù)據(jù)庫(kù)的表名-- CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON area FOR EACH ROW EXECUTE PROCEDURE update_modified_column();
查詢(xún)觸發(fā)器
-- 查詢(xún)所有觸發(fā)器 -- SELECT * FROM pg_trigger; -- 查詢(xún)所有觸發(fā)函數(shù) -- select * from pg_proc;
postgresql timestamp相減
如果是按相差24小時(shí)就算1天的話(huà),直接用兩個(gè)timestamp值相減得到一個(gè)interval值,然后獲得此interval值的天數(shù)部分即可
如下:
select date_part('day', '2015-01-15 17:05'::timestamp - '2013-01-14 16:05'::timestamp);
如果要按timestamp的日期部分做相差天數(shù),則可以轉(zhuǎn)成date值,然后直接相減
如下:
select ('2015-01-15 17:05'::timestamp)::date - ('2015-01-14 19:05'::timestamp)::date;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
PostgreSQL+GeoHash地圖點(diǎn)位聚合實(shí)現(xiàn)代碼
這篇文章主要介紹了PostgreSQL+GeoHash地圖點(diǎn)位聚合,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07PostgreSQL 允許遠(yuǎn)程訪(fǎng)問(wèn)設(shè)置的操作
這篇文章主要介紹了PostgreSQL 允許遠(yuǎn)程訪(fǎng)問(wèn)設(shè)置的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12postgresql 中的 like 查詢(xún)優(yōu)化方案
這篇文章主要介紹了postgresql 中的 like 查詢(xún)優(yōu)化方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01PostgreSQL流復(fù)制參數(shù)max_wal_senders的用法說(shuō)明
這篇文章主要介紹了PostgreSQL流復(fù)制參數(shù)max_wal_senders的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12PostgreSQL?16?新特性之正態(tài)分布隨機(jī)數(shù)函數(shù)的示例
這篇文章主要介紹了PostgreSQL?16?新特性之正態(tài)分布隨機(jī)數(shù)函數(shù),PostgreSQL 16 新增了一個(gè)內(nèi)置的 random_normal() 函數(shù),用于生成這種隨機(jī)數(shù),通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01PostgreSQL 實(shí)現(xiàn)登錄及修改密碼操作
這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)登錄及修改密碼操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01