postgresql - Problem with data type casting and calculating in postgresql
问题描述
I have the code look like this:
CASE
WHEN EXTRACT(YEAR
FROM REPORTING_DATE) >= EXTRACT(YEAR
FROM ('2018/11/09 14:11:31' :: DATE)) THEN EXTRACT(YEAR
FROM REPORTING_DATE)
WHEN EXTRACT(YEAR
FROM ('2018/11/09 14:11:31' :: DATE) - EXTRACT(YEAR
FROM REPORTING_DATE)) >= 2 THEN EXTRACT(YEAR
FROM ('2018/11/09 14:11:31' :: DATE))
WHEN EXTRACT(YEAR
FROM REPORTING_DATE) < EXTRACT(YEAR
FROM ('2018/11/09 14:11:31' :: DATE))
AND EXTRACT(YEAR
FROM REPORTING_DATE) - EXTRACT(YEAR
FROM ('2018/11/09 14:11:31' :: DATE)) < 2
AND EXTRACT(MONTH
FROM ('2018/11/09 14:11:31' :: DATE)) < 6 THEN EXTRACT(YEAR
FROM REPORTING_DATE)
ELSE EXTRACT(YEAR
FROM ('2018/11/09 14:11:31' :: DATE))
After proceeding, it shows message:
Operator does not exist: date - double precision
At the location:
WHEN EXTRACT(YEAR
FROM ('2018/11/09 14:11:31' :: DATE) - EXTRACT(YEAR
FROM REPORTING_DATE)) >= 2
Athough i have cast the string:
2018/11/09 14:11:31 --> to date type
and:
EXTRACT(YEAR FROM ('2018/11/09 14:11:31' :: DATE) ) --> EXTRACT(YEAR FROM...) --> return double value type
But it still shows that message. Anyone could tell me what did i do wrong. and how could i fix it. Thank you.
解决方案
你有一个错误的地方括号。它应该是
EXTRACT( YEAR FROM ('2018/11/09 14:11:31' :: DATE)
) - EXTRACT(YEAR FROM DATE REPORTING_DATE) >= 2
--^ --^
--put here --not here
推荐阅读
- flutter - Flutter:Dialogflow SDK返回尝试调用:[](“queryText”)错误
- angular - 来自可观察订阅的 Angular 7 奇怪行为
- python - 了解 NIFTI 图像的图像数据的取值范围
- r - Group_by 一个唯一值并查找持续时间,同时满足 R (dplyr) 中的多个条件
- android - 由于 ClassNotFoundException,无法构建 android 应用程序
- python - Plotly Sunburst - TypeError: sunburst() got an unexpected keyword argument 'path'
- javascript - Vuejs 在 axios 请求上抛出 400 (Bad Request) 错误
- java - 自动装配构造函数是否会导致 Spring 创建该对象的至少一个实例?
- image - Xamarin Forms 覆盖图像作为背景并在不同方向放置标签
- mysql - 使用nodejs将多个复选框选择插入Mysql