2013-03-04 17 views
1

我的數據庫在此表中使用日期時間的整數。sql語句,現在 - 在unix/epoch時間的6個月

我想要做這樣的事情:

select * from myTable where date_column > CURRENT_TIMESTAMP - 6 months

我不知道如何在6個月離開這裏,動態。和CURRENT_TIMESTAMP - 6 months的結果必須是在信號出現時間

洞察讚賞

+1

您正在使用什麼版本的SQL的嘗試? – 2013-03-04 21:20:55

+0

postgres,不知道更精細的細節 – CQM 2013-03-04 21:24:40

回答

1

在Postgres裏,我相信正確的語法是:

date_column > EXTRACT('epoch' from (NOW() - interval ' 6 months')) 

或類似的:

to_timestamp(date_column) > (NOW() - interval ' 6 months')) 

您可以閱讀date/time functions for Postgres的完整文檔的詳細信息

+0

好吧,我覺得這對我來說更接近標記,但我的date_column將整個時間存儲爲整數,c'est la vie,我怎麼能做這個比較? 'date_column> NOW() - 間隔'6個月' – CQM 2013-03-04 21:40:47

+0

只需將其中一個或另一個轉換爲匹配的數據格式 – JohnnyO 2013-03-04 21:41:22

+0

謝謝,你能看看這個問題嗎? http://stackoverflow.com/questions/15211408/sql-return-dates-where-there-are-no-results – CQM 2013-03-04 21:42:59

2

在MSSQL中,你可以使用

select * 
from myTable 
where date_column > dateadd(month,-6,CURRENT_TIMESTAMP) 
+0

剛剛發現dateadd方法不在postgres內,我會把postgres放在標記 – CQM 2013-03-04 21:26:25

0

您可以在此

SELECT * 
    FROM myTable 
WHERE TO_TIMESTAMP(date_column) > CURRENT_DATE - INTERVAL '6 MONTH'; 

下面是sqlfiddle