的第一天,我有一個PostgreSQL數據庫本年度
SELECT *
FROM accounts
where insertdate BETWEEN '2012-01-01' AND CURRENT_TIMESTAMP
所以下面的查詢我怎能取代'2012-01-01'
要求本年度
還有一個問題的第一天。當我在賬戶表中創建新記錄時,同一時刻正在運行上述選擇,因此它不會爲我提供我剛剛創建的記錄。是否合理? 追上它的最好方法是什麼?
的第一天,我有一個PostgreSQL數據庫本年度
SELECT *
FROM accounts
where insertdate BETWEEN '2012-01-01' AND CURRENT_TIMESTAMP
所以下面的查詢我怎能取代'2012-01-01'
要求本年度
還有一個問題的第一天。當我在賬戶表中創建新記錄時,同一時刻正在運行上述選擇,因此它不會爲我提供我剛剛創建的記錄。是否合理? 追上它的最好方法是什麼?
您正在尋找date_trunc()
,可以截斷日期指定的精度(例如year
,month
,day
):
SELECT date_trunc('year', now());
在您的查詢:
SELECT * FROM accounts where insertdate BETWEEN
date_trunc('year', now()) AND CURRENT_TIMESTAMP
這是完美的,但我還有一個問題。 當我在帳戶表中創建新記錄時,同一時刻正在運行上述選擇,因此它不會爲我提供我剛剛創建的記錄......超過它的最佳方式是什麼? – user1392203
如果操作發生在單獨的事務中,則在提交插入事務後,查詢應該立即找到新記錄。如果他們在同一個事務中,則只需按正確的順序運行查詢。 – beerbajay
有沒有辦法添加'當日23:59:59'? 類似'2012-6-19 23:59:59' – user1392203
你可以試試並使用此CURRENT_TIMESTAMP.YEAR-01-01
'YYYY-01-01'永遠是一年中的第一天...... –