Postgresql Postgres在时间戳中添加值

Postgresql Postgres在时间戳中添加值,postgresql,Postgresql,我怎么能进行这样一个查询,时间戳的所有部分(不包括年份)加起来是50 例如,在我的数据库testdb中,我的列带有字符串时间戳,在该列中,我的时间戳字符串,例如 2016-03-01 07:13:21 2019-07-03 04:04:49 等等,所以它们被- 因此,当我查询数据库时,从testdb中选择timestamp,其中….=50我想看看所有行的单个时间戳字符串加起来是50 删除年份,然后将日期、月份、小时、分钟和秒相加,如果总数为50,则只显示符合条件的行 因此,您首先需要使用例如t

我怎么能进行这样一个查询,时间戳的所有部分(不包括年份)加起来是50

例如,在我的数据库testdb中,我的列带有字符串时间戳,在该列中,我的时间戳字符串,例如

2016-03-01 07:13:21
2019-07-03 04:04:49
等等,所以它们被-

因此,当我查询数据库时,
从testdb中选择timestamp,其中….=50
我想看看所有行的单个时间戳字符串加起来是50

删除年份,然后将日期、月份、小时、分钟和秒相加,如果总数为50,则只显示符合条件的行

因此,您首先需要使用例如
to_timestamp(_列'yyyy-mm-dd hh24:mi:ss')将字符串转换为时间戳。

在此,您可以使用以下方法提取时间戳的每个部分:



将时间戳值存储在
text
(或
varchar
)列中是一个非常糟糕的主意。它们应该存储在定义为
时间戳
或更好的
时间戳

的列中,该列是什么数据类型?但我不明白你想要的实际产出是什么。你能回答你的问题并加上期望的结果吗?完成了,希望这能让它更清楚一点。3+1+7+13+21是45,7+3+4+4+49是67,我不知道你怎么能使这些等于50。我仍然不明白“加起来”指的是一个时间戳值(甚至是多个时间戳值)。顺便说一句:在一个文本列中存储一个时间戳是一个非常糟糕的主意,因为它不是要将时间戳添加到50,而是一个查询,所以它只显示那些等于50的时间戳
select *
from the_table
where extract(month from to_timestamp(the_column, 'yyyy-mm-dd hh24:mi:ss') 
    + extract(day from to_timestamp(the_column, 'yyyy-mm-dd hh24:mi:ss') 
    + extract(hour from to_timestamp(the_column, 'yyyy-mm-dd hh24:mi:ss') 
    + extract(minute from to_timestamp(the_column, 'yyyy-mm-dd hh24:mi:ss') 
    + extract(second from to_timestamp(the_column, 'yyyy-mm-dd hh24:mi:ss')  = 50