我有一個變量,它的格式是2011-05-13。 我想做一個查詢,將一天添加到這個變量,並在數據庫中搜索這樣的日子。Postgresql - 查詢問題
我做了這個查詢,但它不起作用。
select phone from employee where date like (select date '2011-05-13' + 1) %
任何人都可以幫忙嗎?
我有一個變量,它的格式是2011-05-13。 我想做一個查詢,將一天添加到這個變量,並在數據庫中搜索這樣的日子。Postgresql - 查詢問題
我做了這個查詢,但它不起作用。
select phone from employee where date like (select date '2011-05-13' + 1) %
任何人都可以幫忙嗎?
您需要的時間間隔:
SELECT phone FROM employee WHERE datefield = (date '2011-05-13' + INTERVAL '1 DAY') ;
編輯:不要當你使用日期等中使用,也沒有像一個日期。
我的日期排是這樣的2011-05-13 22:13:09.969所以我需要%符號來匹配2011-05-13。我不知道如何做到這一點。 添加1日到2011-05-13爲我工作與此查詢選擇日期'2011-05-13'+ 1. – tipotas 2011-06-01 20:40:12
@tipotas:使用「之間日期'2011-05-13'和'2011- '05-14'將獲得5-13的所有值,因爲它會將它們視爲午夜至午夜。 – invertedSpear 2011-06-01 20:48:08
只需將您的TIMESTAMP轉換爲DATE:CAST(字段爲AS DATE)='2011-05-13' – 2011-06-01 20:54:43
嘗試以下操作:
SELECT phone FROM employee WHERE to_char(date, 'yyyy-mm-dd')::timestamp = ('2011-05-13'::timestamp + '1 day'::interval)
YOu也可以使用date_trunc('day',date)而不是to_char()。 – 2011-06-01 20:47:25
只需將它CAST到一個日期,你很好。您不需要字符串函數to_char()來提取日期部分。 – 2011-06-01 20:56:03
以這種方式使用to_char()可能使得不可能使用索引。 – 2011-06-01 21:09:23
什麼類型是' 「日期」'場?這是什麼意思查詢「不起作用?」它是否因*語法錯誤*而失敗,因爲你打算引用並連接那個'%'?它是否因*運算符失敗而不存在錯誤*因爲沒有接受時間戳字段和字符串的重載LIKE運算符,並且上面的查詢不正是您正在執行的內容? – pilcrow 2011-06-02 03:20:22