2014-09-23 41 views
0

我試圖運行PostgreSQL中以下查詢:如何將日期轉換爲字符串,以便此查詢將運行?

ERROR: operator does not exist: character varying = date 
LINE 1: select * from movies where release_date = current_date; 
               ^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. 

好像我需要投用CURRENT_DATE功能分爲返回的日期:

select * from movies where release_date = current_date; 

它與下面的錯誤響應一個字符串,這樣的比較將工作。我怎麼做?

+0

看看http://stackoverflow.com/questions/17067372/postgres-string-to-date-example-10apr77-to-10-04-1977它會告訴你如何投射一個字符串(你的release_date)變成日期。但是,爲什麼您的release_date不是作爲數據庫中的日期存儲的? – 2014-09-23 20:02:59

+0

'release_date'的列類型是什麼? – tadman 2014-09-23 20:03:40

+0

爲什麼在文本列中存儲日期?如果你無法修復你的模式,那麼'release_date'的格式是什麼? – 2014-09-23 20:20:45

回答

0

試試這個:

select * from movies where release_date::date = current_date; 

SQLFiddle

0

假設你release_date列能夠被轉換爲一個日期,你最好了與:

select * from movies where cast(release_date as date) = current_date; 

CAST功能是SQL-92 standard的一部分,並將保持您的查詢在多個平臺間移植。