java - 如何将值从我的 REST 端点传递到我的 PostgreSQL time_bucket_gapfill() 函数
问题描述
我正在尝试通过 REST 端点使用 TimescaleDB 从我的 PostgreSQL 数据库中调用 time_bucket_gapfill() 函数。显然,我使用该函数将我的数据聚合到选定间隔的桶中。如果用户请求一周的数据,我每天汇总数据,如果他们请求一天的数据,我每小时汇总数据,等等。
我正在使用 time_bucket_gapfill() 函数,如下所示:
time_bucket_gapfill('1 day', timestamp) <- This gives me data on daily basis
time_bucket_gapfill('1 hour', timestamp) <- This gives me data on hourly basis
但是,函数中的第一个参数在查询中没有硬编码,它由 REST 端点提供给查询,并作为数据类型字符串提供。这就是导致问题的原因,因为它给了我以下错误:
ERROR: function public.time_bucket_gapfill(character varying, timestamp without time zone) does not exist
如何以正确的格式注入值?
解决方案
\df
您可以使用以下命令检查可用函数的签名:
\df public.time_bucket_gapfill;
List of functions
-[ RECORD 1 ]-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Schema | public
Name | time_bucket_gapfill
Result data type | bigint
Argument data types | bucket_width bigint, ts bigint, start bigint DEFAULT NULL::bigint, finish bigint DEFAULT NULL::bigint
Type | func
-[ RECORD 2 ]-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Schema | public
Name | time_bucket_gapfill
Result data type | integer
Argument data types | bucket_width integer, ts integer, start integer DEFAULT NULL::integer, finish integer DEFAULT NULL::integer
Type | func
-[ RECORD 3 ]-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Schema | public
Name | time_bucket_gapfill
Result data type | date
Argument data types | bucket_width interval, ts date, start date DEFAULT NULL::date, finish date DEFAULT NULL::date
Type | func
-[ RECORD 4 ]-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Schema | public
Name | time_bucket_gapfill
Result data type | timestamp with time zone
Argument data types | bucket_width interval, ts timestamp with time zone, start timestamp with time zone DEFAULT NULL::timestamp with time zone, finish timestamp with time zone DEFAULT NULL::timestamp with time zone
Type | func
-[ RECORD 5 ]-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Schema | public
Name | time_bucket_gapfill
Result data type | timestamp without time zone
Argument data types | bucket_width interval, ts timestamp without time zone, start timestamp without time zone DEFAULT NULL::timestamp without time zone, finish timestamp without time zone DEFAULT NULL::timestamp without time zone
Type | func
-[ RECORD 6 ]-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Schema | public
Name | time_bucket_gapfill
Result data type | smallint
Argument data types | bucket_width smallint, ts smallint, start smallint DEFAULT NULL::smallint, finish smallint DEFAULT NULL::smallint
Type | func
如您所见character varying
,您需要将其转换为间隔。
select '1 month'::interval;
-[ RECORD 1 ]---
interval | 1 mon
推荐阅读
- java - Android:错误:无法解决:cardview 受影响的模块:app
- vulkan - 传输写入命令之间的管道屏障
- objective-c - 核心情节:光标不会在 CPTGraphHostingView 上调整
- javascript - 如何使用 VeeValidate (Vue.Js) 上的字典为 ValidationProvider 自定义“必需”错误消息
- c# - 通过Selenium和C#最小化浏览器时如何ScrollIntoView
- jquery - img src 等于父 div 的兄弟 img src
- php - 安装 Vestacp 时出现 ioncube 和 php 错误
- ios - 如何在 Firebase SDK for iOS 中注销 Facebook 身份验证
- python - SpeechRecognition sr.microphone 命令触发 Windows 安装程序
- r - 为 ggbiplot / ggplot 循环遍历 r 中的字符