postgresql 從一段時間內獲取最早的一天或者最晚的一天

方法1

select * from 表   where openid='****' order by (fwsj - to_timestamp(to_char(fwsj,'YYYY-MM-DD'),'YYYY-MM-DD')) limit 1;

取最早時間 倒序排序取最晚時間

方法2:

select * from 表   where openid='***' order by (extract(epoch FROM(fwsj - to_timestamp(to_char(fwsj,'YYYY-MM-DD'),'YYYY-MM-DD')))) ;

參考案例

select 
fwsj
,to_char(fwsj,'YYYY-MM-DD') 
,to_timestamp(to_char(fwsj,'YYYY-MM-DD'),'YYYY-MM-DD')
,fwsj - to_timestamp(to_char(fwsj,'YYYY-MM-DD'),'YYYY-MM-DD')
,extract(epoch FROM(fwsj - to_timestamp(to_char(fwsj,'YYYY-MM-DD'),'YYYY-MM-DD')))
from 表;

部分函數介紹

– 獲取當前時間
select now();
select CURRENT_TIMESTAMP;
– to_char
to_char(timestamp, text) 將時間戳轉爲字符串
– to_timestamp
to_timestamp(text, text) 將字符串轉換爲時間戳
– 時間戳相減
結果我爲時間戳 可以相減得到的也是時間戳格式
– extract()
該extract功能從日期/時間值中檢索子字段
使用1: extract(field from timestamp)
使用2:執行減法的一種簡單方法是使用將每個值轉換爲秒數EXTRACT(EPOCH FROM …)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章