簡體   English   中英

PostgreSQL:如何在CURRENT_DATE-時間戳>(年/月/日的值)

[英]PostgreSql: how to do where CURRENT_DATE - timestamp > (Value of years/months/days)

請問在PostgreSql中該怎么做

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

在這里,我想計算一個人的年齡,並驗證該年齡是大於還是小於某個特定值,因此我需要減去該人出生時的CURRENT_DATE和時間戳,但是那時我不知道如何可以,但是有人可以幫助我嗎?
非常感謝你

您將需要INTERVAL類型

可以DATE / TIMESTAMP 減去它,因此最好的謂詞是:

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上使用任何索引, your_timestamp_column要遵循INTERVAL理由

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM