请问,在PostgreSql中,如何做
where CURRENT_DATE - timestamp > (Value of years/months/days).
在这里,我想计算一个人的年龄并验证它是否比某个值更老或更年轻,所以我需要在人出生时减去CURRENT_DATE和时间戳,但之后我不会知道该怎么办,无论如何我可以帮助我吗? 非常感谢你
答案 0 :(得分:1)
您需要INTERVAL
type。
来自DATE
/ TIMESTAMP
的{{3}},因此您的最佳谓词将是:
WHERE CURRENT_TIMESTAMP - INTERVAL '18 years' > your_timestamp_column
或者,(当给定的INTERVAL
应该是查询参数时,如果你只能绑定基本类型(最有可能),你可以绑定f.ex. INTEGER
年值:
WHERE CURRENT_TIMESTAMP - (? * INTERVAL '1 year') > your_timestamp_column
从技术上讲,你的原始逻辑也可以起作用:
WHERE CURRENT_TIMESTAMP - your_timestamp_column > INTERVAL '18 years'
但不会使用your_timestamp_column
上的任何索引。受can be subtracted。