You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中::类型转换语法解析及相关官方文档查询求助

问题

我用以下SQL计算2021-01-02当日的付款总额:

SELECT SUM(PAYMENT) AS TOT_PAYMENTS
FROM PAYMENTS
WHERE (PAY_DATE::timestamp)::date = '2021-01-02'

已知PAY_DATE字段的数据类型为TIMESTAMP,我通过其他途径找到用::语法在过滤时将其转换为DATE类型的方法,且该方法已生效。现在想咨询:

  1. 该类型转换语法的官方文档在哪里可以找到?
  2. 目前我仅能找到CAST和PARSE方法的相关资料,能否解释此语法的原理?

回答

语法原理

这个::是PostgreSQL(以及部分兼容它的数据库)专属的类型转换简写操作符,和标准SQL里的CAST(表达式 AS 目标类型)功能完全等价。

比如你写的PAY_DATE::date,就等同于CAST(PAY_DATE AS date),作用是把TIMESTAMP类型的字段转换成DATE类型,只保留日期部分。另外你代码里的(PAY_DATE::timestamp)::date有点多余——因为PAY_DATE本身就是TIMESTAMP类型,直接写PAY_DATE::date就足够完成转换了。

官方文档位置

在PostgreSQL的官方文档中,这个语法归在类型转换相关章节里,具体是SQL语法板块下的类型转换部分,文档会同时说明::操作符和CAST这两种写法,你直接搜索“Type Casting”(英文文档)或者“类型转换”(中文文档)就能找到对应的内容。

内容的提问来源于stack exchange,提问作者Kaido

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 06:10:59