sql - 减去日期时使用 CTE 的 Postgres SQL
问题描述
我试图根据 cte_film 中 select 语句的整数结果减去当前日期。但是,将 select 语句放在 select now() 间隔内会给我带来问题。
WITH cte_film AS (
SELECT configvalue from TRAC.configvalues con where configcd = 'processingday'
),
cte_filma AS
(SELECT now() - (select configvalue from cte_film) * INTERVAL '1 day')
SELECT * from cte_filma;
错误:运算符不存在:字符变化 * 间隔
第 5 行:...SELECT now() - (select configvalue from cte_film) * INTERVAL... ^ 提示:没有运算符与给定名称和参数类型匹配。您可能需要添加显式类型转换。
解决方案
我可能会过度简化您的问题,但据我了解,您根本不需要 a CTE
。尝试这个:
SELECT now() - configvalue
FROM trac.configvalues
WHERE configcd = 'processingday'
如果您不需要时间,请使用current_date
而不是now()
. 看到不同:
SELECT current_date - 1, now() - '1 day'::INTERVAL;
?column? | ?column?
------------+-------------------------------
2020-03-11 | 2020-03-11 16:23:56.384132+01
(1 Zeile)
推荐阅读
- powershell - 使用 rename-item cmdlet 时出现脚本块错误
- php - 如何配置 GitLab 的 phpcs-security-audit 分析器?
- java - 如何使用正则表达式检查多个字符串之间的特定字符串?
- javascript - 引导堆栈模型滚动问题
- python - 想在我的数据集中搜索“多重相关”。做两个或多个变量一起预测我的目标变量
- llvm - 如何为开源项目的全程序分析生成llvm bitcode?如何使用 llvm-link/gold 插件来做到这一点?
- arrays - 为什么我的代码在 C 中返回垃圾值
- c# - 如何仅在某些特定条件下将 dbContext 加入另一个
- vue.js - 如何在满足 v-if 条件之前停止视频下载
- node.js - 如何在没有 OBS 的情况下使用节点 js 将网络摄像头流发送到 azure 媒体服务实时流摄取 url