2017-06-14 68 views
3

如果我查詢包含2017年(或任何其他年份)的條目的時間戳列,我會得到0個結果。pg_query like timestamp

在w_presse_erscheinung的數據是 「無時區的時間戳」,看起來像這樣的例子:2017年6月1日00:00:00

我認爲有一些錯誤與查詢的LIKE部分...

我的查詢看起來是這樣的:

 $result = pg_query(" 
     SELECT 
     name, 
     w_presse_link, 
     w_presse_erscheinung, 
     w_presse_quelle, 
     description 

     FROM adempiere.w_presse 
     WHERE isactive ='Y' 
     AND description='PS' AND w_presse_erscheinung LIKE '%2017%' 
     ORDER BY w_presse_erscheinung 
     DESC 
     ") 
+2

'LIKE'用於字符串,不適用於日期或時間戳 –

回答

2

而不是依賴於字符串轉換的,你可以明確地提取一年的時間戳記:

EXTRACT(YEAR FROM w_presse_erscheinung) = 2017 
+0

就是這樣。謝謝! – user2164882

1

你不能像這樣使用時間戳字段。要麼將timestamp字段類型化爲varchar,然後使用like或者使用extract函數來匹配字段中的年份。

+1

鑄造爲了使用像是一個非常糟糕的建議 –