方法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 …)