postgres 距今时间间隔超过1小时 sql小案例

上周接到一个开发任务,要求写一个超时1小时未提交的接口,业务不算复杂,写sql 的时候倒是卡壳了一会。

mysql的时间相减获得小时有个函数: TIMESTAMPDIFF(unit,start,end),
其中 unit 有4个参数:
MINUTE:计算相差多少分钟;
HOUR:计算相差多少小时;
DAY:计算相差多少天;
MONTH:计算相差多少月。

项目中使用的数据库是 postgers 数据库,以前写的项目是用到的数据库都是mysql,所以我还是使用 TIMESTAMPDIFF(unit,start,end) 这个函数去写SQL语句,具体如下:

 		SELECT	pid,username 
 		FROM  exam_questions_expand 
 		WHERE  is_submit = '0' 
		AND TIMESTAMPDIFF(HOUR,createdtime,CURRENT_TIMESTAMP) > 1
		GROUP BY pid,username

运行后直接报错,postgers 不支持这种语法,没办法,转而求助万能的百度。但是遗憾的是找了半天也没能找到契合需求的文章,反而有种乱花渐欲迷人眼的感觉。

静下心来,苦思冥想,忽然灵机一动,试着写了一些SQL并去验证,嘿嘿,还真的成功了!

		SELECT pid,username 
		FROM exam_questions_expand 
		WHERE is_submit = '0' 
		AND CURRENT_TIMESTAMP - createdtime > INTERVAL '1 hour'
		GROUP BY pid,username

不过要记得在xml中写的SQL 大于号 要进行转义。
挺开心的,记录一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值