我有一個包含以下列的預訂表:
bookid,facility_id,member_id,start_time,slots。start_time 的資料型別是沒有時區的時間戳。
當我使用以下查詢查看從 2012 年 9 月開始的所有預訂時,我也得到了 2012 年 8 月的一些結果。
select start_time from cd.bookings
where start_time > '2012-08-31';
示例結果:
"2012-08-31 09:00:00"
"2012-08-31 10:30:00"
"2012-08-31 12:00:00"
"2012-08-31 14:30:00"
"2012-08-31 16:30:00"
"2012-08-31 19:00:00"
"2012-08-31 08:00:00"
"2012-08-31 10:30:00"
"2012-08-31 12:00:00"
"2012-08-31 13:30:00"
"2012-08-31 15:00:00"
"2012-08-31 18:30:00"
"2012-08-31 08:30:00"
"2012-08-31 11:00:00"
"2012-08-31 12:30:00"
"2012-08-31 14:00:00"
"2012-08-31 17:00:00"
"2012-08-31 19:00:00"
"2012-08-31 09:00:00"
"2012-08-31 10:30:00"
"2012-08-31 12:30:00"
"2012-08-31 19:30:00"
"2012-08-31 08:30:00"
"2012-08-31 10:00:00"
"2012-08-31 12:30:00"
"2012-08-31 13:30:00"
"2012-08-31 14:30:00"
"2012-08-31 16:30:00"
"2012-08-31 18:00:00"
"2012-08-31 19:00:00"
"2012-08-31 09:30:00"
"2012-08-31 11:00:00"
"2012-08-31 15:00:00"
"2012-08-31 17:00:00"
"2012-08-31 09:00:00"
"2012-08-31 11:00:00"
"2012-08-31 14:30:00"
"2012-08-31 18:00:00"
"2012-08-31 08:00:00"
"2012-08-31 11:30:00"
"2012-08-31 13:00:00"
"2012-08-31 15:00:00"
"2012-08-31 16:30:00"
"2012-08-31 17:30:00"
"2012-08-31 18:30:00"
"2012-08-31 08:30:00"
"2012-08-31 10:00:00"
"2012-08-31 12:30:00"
"2012-08-31 13:30:00"
"2012-08-31 14:00:00"
"2012-08-31 14:30:00"
"2012-08-31 16:00:00"
"2012-08-31 16:30:00"
"2012-08-31 17:00:00"
"2012-08-31 18:00:00"
"2012-08-31 18:30:00"
"2012-08-31 19:00:00"
"2012-08-31 20:00:00"
"2012-09-01 08:00:00"
"2012-09-01 11:00:00"
"2012-09-01 12:30:00"
"2012-09-01 15:00:00"
"2012-09-01 17:00:00"
"2012-09-01 08:00:00"
"2012-09-01 09:30:00"
"2012-09-01 11:00:00"
"2012-09-01 14:30:00"
"2012-09-01 16:30:00"
"2012-09-01 19:00:00"
"2012-09-01 09:00:00"
"2012-09-01 13:30:00"
"2012-09-01 16:30:00"
"2012-09-01 18:00:00"
"2012-09-01 08:30:00"
"2012-09-01 09:30:00"
"2012-09-01 10:30:00"
"2012-09-01 12:30:00"
"2012-09-01 14:00:00"
"2012-09-01 15:00:00"
"2012-09-01 16:30:00" and so on.....
這是為什么?
uj5u.com熱心網友回復:
由于資料型別是timestamp,文字'2012-08-30'被解釋為2012-01-01 00:00:00。要僅獲取具有 9 月 1 日或之后時間戳的值,請使用
WHERE start_time >= '2021-09-01 00:00:00'
uj5u.com熱心網友回復:
因為這些是字串,而不是日期/時間物件。就像"AAAA"大于"AAA",在此"2012-08-31 ANYTHING"大于"2012-08-31"。也許你想要start_time > "2012-08-31 23:59:59"。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/357301.html
標籤:sql PostgreSQL的
