PostgreSql:如何做CURRENT_DATE - timestamp> (年/月/日的价值)

时间:2017-03-10 16:37:06

标签: postgresql

请问,在PostgreSql中,如何做

where CURRENT_DATE - timestamp > (Value of years/months/days).

在这里,我想计算一个人的年龄并验证它是否比某个值更老或更年轻,所以我需要在人出生时减去CURRENT_DATE和时间戳,但之后我不会知道该怎么办,无论如何我可以帮助我吗? 非常感谢你

1 个答案:

答案 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

约束