【问题标题】:Invalid input syntax for integer but type is date?整数的输入语法无效,但类型是日期?
【发布时间】:2020-02-19 06:13:43
【问题描述】:

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

表格:

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 日期使用服务? (如果付款他们可以)

谢谢

【问题讨论】:

  • 请注意您要与日期进行比较:它是一个 COUNT,它始终是一个整数。您想将日期值列与日期进行比较。
  • 你想做什么?您应该解释查询的目的,以便帮助解决它。

标签: postgresql


【解决方案1】:

您似乎想要一个 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 标识符默认强制为小写,除非您在对象创建期间通过在标识符周围加上双引号来指定大小写。不过,我们强烈反对这种做法。

【讨论】:

    猜你喜欢
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 2018-05-22
    • 2023-01-26
    • 2020-03-26
    相关资源
    最近更新 更多