Postgrasql踩坑记录

446 阅读1分钟

使用

指定排序方式

  1. 指定一个字段根据与给定标准值大小的差值进行排序

    ORDER BY ABS("field" > THEN "field" - $standard)

  2. 如果值的类型是timestamp,如果使用以上方法有可能会出现以下错误function abs(interval) does not exist,因此需要区分时间的前后,同时为了避免时区产生的影响,建议使用CURRENT_TIMESTAMP,而不是NOW()

    ORDER BY CASE WHEN "field" > CURRENT_TIMESTAMP THEN "field" - CURRENT_TIMESTAMP ELSE CURRENT_TIMESTAMP - "field" END

    同样我们还可以使用函数来解决

    ABS(EXTRACT(EPOCH FROM ("field" - CURRENT_TIMESTAMP)))

    其中extract()是提取函数