首页 > 解决方案 > 整数的输入语法无效,但类型是日期?

问题描述

我正在尝试使用查询来获取日期类型值,但它不起作用......

表:

Create table Clients1(
    login char(30) primary key,
    password varchar(30),
    date_ad date,
    name_c varchar(30),
    adress varchar(30),
    card_c varchar(30)
);

Create table clients_pay(
    payment_ID char(15) primary key,
    login char(15)
);

出现以下错误:

22P02:整数的无效输入语法:“2019/12/02”

我的查询如下:

SELECT DISTINCT login, COUNT(payment_ID) AS p 
FROM Clients1 
NATURAL INNER JOIN Payments1 
NATURAL INNER JOIN clients_pay 
GROUP BY login 
HAVING COUNT(payment_ID) >='2019/12/02';

既然是日期类型,为什么它显示为整数?

我想看看哪些客户可以在 2019/12/02 日期使用服务?(如果付款他们可以)

谢谢

标签: postgresql

解决方案


看起来您想要一个 WHERE 子句来限制日期返回的 payment_ids,例如:

SELECT login, COUNT(payment_ID) AS p 
FROM clients1 
INNER JOIN clients_pay 
ON clients_pay.login = Clients1.login
WHERE date_ad >='2019/12/02'
GROUP BY login ;

我还对您的查询和数据模型的意图做了一些假设,如果这不符合您的需求,请编辑您的问题以澄清这些事情。另请注意,Postgres 标识符默认强制为小写,除非您在对象创建期间通过在标识符周围加上双引号来指定大小写。不过,这种做法是非常不鼓励的。


推荐阅读