Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/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增量数_Postgresql - Fatal编程技术网

输出中的postgreSQL增量数

输出中的postgreSQL增量数,postgresql,Postgresql,我正在从我的postgresql>中提取三个值(服务器、区域、最大(日期)),但我想提取一个额外的第四个字段,它应该是1到第三个字段的数字相加。我无法使用日期添加函数,因为数据库中的日期字段定义为整数 日期类型(以DB为单位) date|integer|not null 尝试使用强制转换和日期添加功能 MAX(s.date)::date + cast('1 day' as interval) 收到错误 所需输出 select server, region, max(alarm_date),

我正在从我的postgresql>中提取三个值(服务器、区域、最大(日期)),但我想提取一个额外的第四个字段,它应该是1到第三个字段的数字相加。我无法使用日期添加函数,因为数据库中的日期字段定义为整数

日期类型(以DB为单位)

date|integer|not null
尝试使用强制转换和日期添加功能

MAX(s.date)::date + cast('1 day' as interval)
收到错误

所需输出

select server, region, max(alarm_date), next date from table .....

testserver, europe, 20190901, 20190902
testserver2, europe, 20191001, 20191002

下一个日期值应该是报警日期的加法。要将类似于
20190901的整数转换为日期,请使用

to_date(CAST(s.date AS text), 'YYYYMMDD')

将日期存储为那样的整数是个坏主意。使用
date
数据类型将防止损坏的数据进入数据库,并使所有操作变得自然。

要将
20190901
之类的整数转换为日期,请使用

to_date(CAST(s.date AS text), 'YYYYMMDD')

将日期存储为那样的整数是个坏主意。使用
日期
数据类型将防止损坏的数据进入数据库,并使所有操作变得自然。

我想到的第一个解决方案:

select (20190901::varchar)::date + 1
输出2019-09-02作为类型日期


可以找到其他解决方案。

我想到的第一个解决方案是:

select (20190901::varchar)::date + 1
输出2019-09-02作为类型日期


可以找到其他解决方案。

添加1后,我是否可以在不使用-(连字符)的情况下获得输出这是一种糟糕的做法,正如其他用户所建议的那样。无论如何,要执行此操作:
选择replace((截止日期(20190901::text,'YYYYMMDD')+1)::text,'-',''::integer
此操作将替换连字符并转换回整数。好像我是对的。。。您希望更新该值。您应该真正更改类型并避免这样做。在添加1后,我是否能够在不使用-(连字符)的情况下获得输出?正如其他用户所建议的,这是一种糟糕的做法。无论如何,要执行此操作:
选择replace((截止日期(20190901::text,'YYYYMMDD')+1)::text,'-',''::integer
此操作将替换连字符并转换回整数。好像我是对的。。。您希望更新该值。您应该真正更改类型并避免这样做。有风险而且非常狡猾