基于时间间隔的Postgresql时间差
我有一个表,基于时间间隔的Postgresql时间差,postgresql,Postgresql,我有一个表,time\u slots,它有一列start\u time。Myusers表中有一列,hours\u before(int),它是在开始时间接收通知之前的小时数 我每5分钟运行一次作业,检查具有开始时间的时间段,该时间段现在比早+小时。我的所有日期时间都存储在UTC中。我找不出正确的where子句来获得适当的时间段 现在,我将当前时间作为字符串传递给UTC,而不是在时区“UTC”执行类似于current\u timestamp的操作。 (提取(从开始的历元)-提取(从日期'2020-
time\u slots
,它有一列start\u time
。Myusers
表中有一列,hours\u before
(int),它是在开始时间
接收通知之前的小时数
我每5分钟运行一次作业,检查具有开始时间的时间段,该时间段现在比
早+小时。我的所有日期时间都存储在UTC中。我找不出正确的where
子句来获得适当的时间段
现在,我将当前时间作为字符串传递给UTC,而不是在时区“UTC”执行类似于current\u timestamp的操作。
(提取(从开始的历元)-提取(从日期'2020-11-09 06:20:00'+(users.hours\u之前*间隔'1小时'))=0
下面是一个测试查询,用于查看select
中的值。在本例中,(6*间隔“1小时”)
将是用户的位置。我在修补时使用了静态6
选择
(摘录(从“起始点”开始的历元)-摘录(从日期“2020-11-09 06:20:00”)开始的历元/3600小时,
(摘录(从“开始”起的历元)-摘录(从(日期'2020-11-09 06:20:00'+(6*间隔'1小时'))起的历元)作为其他时间间隔,
*
从…起
“时隙”
哪里
“开始于”>'2020-11-09 06:20:00'
按小时订购asc;
例如,以下查询与上述查询具有相同的hours
和other_interval
值,尽管日期为2020-11-09 10:00:00
,而不是2020-11-09 06:00:00
。这些列不应该有4个小时的不同,因为它们会改变4个小时吗
选择
(摘录(从“起始点”开始的历元)-摘录(从日期“2020-11-09 10:00:00”)开始的历元/3600小时,
(摘录(从“开始时间”开始的历元)-摘录(从(日期'2020-11-09 10:00:00'+(6*间隔'1小时'))开始的历元)作为其他时间间隔,
*
从…起
“时隙”
哪里
“开始于”>=“2020-11-09 06:00:00”
按小时订购asc;
日期“2020-11-09 10:00:00”
会丢失时间部分,因为日期没有时间。出于好奇,您需要时间戳'2020-11-09 10:00:00'
:为什么不先减去值,然后得到历元<代码>提取(从时间戳'2020-11-09 10:00:00'开始的历元)
)`@a_horse_,没有名字时间戳
。回答你的第二个问题,因为我不知道我在做什么!哈,谢谢你的指导。