Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL日期部分函数_Sql_Postgresql - Fatal编程技术网

PostgreSQL日期部分函数

PostgreSQL日期部分函数,sql,postgresql,Sql,Postgresql,我需要找到发送所有文件的时间不超过10分钟的所有申请。我已经完成了代码的其余部分,但是我对date\u部分函数有问题。下面的代码运行良好,但我必须找到另一种方法。我怎样才能做得不同 abs( round( ( date_part('hour',d.received_date) - date_part('hour',d.send_date) ) * 60 +

我需要找到发送所有文件的时间不超过10分钟的所有申请。我已经完成了代码的其余部分,但是我对date\u部分函数有问题。下面的代码运行良好,但我必须找到另一种方法。我怎样才能做得不同

abs(
    round(
        (
            date_part('hour',d.received_date)
            - 
            date_part('hour',d.send_date)
        ) * 60
        + 
        (
            date_part('minute', d.received_date)
            -
            date_part('minute', d.send_date)
        )
    )
) as sendTime

我不清楚您是想将结果限制在差异小于10分钟的行(如问题中所述),还是只想以分钟为单位显示两个时间戳之间的结果(如您在注释中所述)

表达式
r.received\u date-r.send\u date
返回一个可以轻松转换为分钟的值。因此,要显示差异,请使用:

extract(epoch from d.received_date - d.send_date) / 60 as minutes
要将结果限制为差异小于10分钟的行,请使用:

select ...
from ...
where d.received_date - d.send_date <= interval '10' minute
选择。。。
从…起

d.received_date-d.send_date你为什么需要找到另一种方法?如果您可以添加相关的CREATETABLE语句,以便我们可以看到表结构,那么回答这个问题就会容易得多。请提供示例数据和所需结果。本网站是英文网站,因此您的查询和问题彼此没有关系。很抱歉,我忘记更改值。abs(round((date_part('hour',d.received_date)-date_part('hour',d.post_date))*60+(date_part('minute',d.received_date)-date_part('minute',d.post_date)))作为czaswysylki
其中r.received\u date-r.send\u date