在postgresql中,我需要一个月内的所有偶数天和一个月内的所有奇数天
这是一个错误,如下所示:- 错误:函数mod(双精度,整数)不存在提示:否 函数匹配给定的名称和参数类型。你可能需要 添加显式类型转换。职位:451在postgresql中,我需要一个月内的所有偶数天和一个月内的所有奇数天,postgresql,Postgresql,这是一个错误,如下所示:- 错误:函数mod(双精度,整数)不存在提示:否 函数匹配给定的名称和参数类型。你可能需要 添加显式类型转换。职位:451 之所以会出现此错误,是因为extract的输出是双精度的,mod()函数需要两个数据类型相同的参数 因此,如果您强制转换提取输出,您将不会收到该错误消息: SELECT "user_id", cast("created_date" as date), EXTRACT(DAY FROM
之所以会出现此错误,是因为
extract
的输出是双精度的,mod()
函数需要两个数据类型相同的参数
因此,如果您强制转换提取输出,您将不会收到该错误消息:
SELECT
"user_id",
cast("created_date" as date),
EXTRACT(DAY FROM cast("created_date"as timestamp))
FROM
"loan"
WHERE
date_trunc('month', cast("created_date" as date)) = date_trunc('month', cast(now() as date))
AND MOD(EXTRACT(DAY FROM cast("created_date" as timestamp)),2) = 0
GROUP BY
cast("created_date" as date),
"user_id"
但我认为该查询不起作用,以下是我认为您正在尝试的:
AND MOD(EXTRACT(DAY FROM cast("created_date" as timestamp))::int,2) = 0
选择
“用户id”,
铸造(“创建日期”为日期),
计数(*)过滤器(其中MOD(提取(从cast提取的日期(“创建的日期”作为时间戳))::int,2)=0)EvenDaysNo,
count(*)filter(其中MOD(提取(从cast提取的日期(“创建的日期”作为时间戳))::int,2)0)OddDaysNo
从“贷款”
其中cast(“创建日期”为日期))=cast(现在()为日期))
分组
强制转换(“创建日期”为日期)、“用户id”
SELECT
"user_id",
cast("created_date" as date),
count(*) filter (where MOD(EXTRACT(DAY FROM cast("created_date" as timestamp))::int,2) = 0 )) EvenDaysNo ,
count(*) filter (where MOD(EXTRACT(DAY FROM cast("created_date" as timestamp))::int,2) <> 0 )) OddDaysNo
FROM "loan"
WHERE cast("created_date" as date)) = cast(now() as date))
GROUP BY
cast("created_date" as date),"user_id"