2014-04-01 64 views
0

背景:我們使用python和xlrd模塊提取數百個excel文檔,並將這些結果放入Postgres 8.4數據庫中。問題在於將商店日期時間作爲一個瘋狂的浮點數來計算,這個數字是現在到1900年12月31日之間的天數的比例。通常,浮動的最後有效位數被截斷,這可以使我們的日期減少多達35天。查詢字符串部分的PostgreSQL字符變化列

http://office.microsoft.com/en-us/excel-help/datevalue-HP005209044.aspx

所以我們改變了我們的工藝和日期時間存儲在這種格式的Excel文檔字符串。 31-MAR-2014 00:00:00

這些然後撕開並攝入postgres數據庫作爲字符變化的列。但現在是問題的問題。我知道一個可能的解決方案是添加一個額外的列,並將日期轉換爲postgres dtm值。

我的問題是,雖然我可以根據postgres中字符串的部分查詢和返回結果。例如,我可以做到這一點,如果我想拉2013年2月23日

SELECT * FROM finance_table WHERE date_value contains? = "23-FEB-2013' 
+1

我覺得你想''LIKE'在'WHERE date_value LIKE'%23-FEB-2013%'' –

+0

謝謝!工作完美,你能回答,所以我可以折騰一些代表你的方式先生? – AlienAnarchist

+0

Barry的答案可以滿足你所需的一切,但如果你需要更多的靈活性,你也可以使用標準的正則表達式匹配,如下所示:'SELECT * FROM some_tbl WHERE some_column〜'^ abc [^ de] + f $''。 –

回答

2

所有條目根據你的要求,這是我在回答格式註釋:

您需要使用LIKE。在你的查詢的情況下,你會使用類似於:WHERE date_value LIKE '%23-FEB-2014%'%匹配零個或多個字符,因此對包含有效。 LIKE的另一個通配符是_,它恰好匹配一個字符。