2013-04-10 57 views
0

我的表名是tbl1。檔案爲id,name,txdate如何在postgresql中檢查日期

| ID | NAME | TXDATE | 
| 1 | RAJ  | 1-1-2013 | 
| 2 | RAVI |   | 
| 3 | PRABHU | 25-3-2013 | 
| 4 | SAT  |   | 

現在我想使用select查詢檢查txdate < 2-2-2013其中行具有txdate不是空的,選擇也retrun該行具有txdate空。

結果是這樣

| ID | NAME | TXDATE | 
| 1 | RAJ  | 1-1-2013 | 
| 2 | RAVI |   | 
| 4 | SAT  |   | 

任何可行的解決方案是有? 無法使用聯合可能嗎?

+2

'txdate'的數據類型是什麼? – 2013-04-10 06:58:22

+0

@MahmoudGamal txdate日期。 – Sathish 2013-04-10 07:08:23

回答

0

假設TXDATE的數據類型爲DATE那麼您可以使用WHERE "TXDATE" < '2013-2-2' OR "TXDATE" IS NULL。喜歡的東西:

SELECT * 
FROM table1 
WHERE "TXDATE" < '2013-2-2' 
    OR "TXDATE" IS NULL; 

看到它在行動:

1

我不知道你現在正在使用的數據庫,什麼數據類型TXDATE是。

我剛剛在我的postgreSQL 9.2上試了一個字段「timestamp without time zone」。

我有三個表中的行,如:

ac_device_name | ac_last_heartbeat_time 

----------------+------------------------- 

Nest-Test1  | 

Nest-Test3  | 

Nest-Test2  | 2013-04-10 15:06:18.287 

然後在下面語句中使用

select ac_device_name,ac_last_heartbeat_time 
from at_device 
where ac_last_heartbeat_time<'2013-04-11'; 

這是確定只返回一個記錄:

ac_device_name | ac_last_heartbeat_time 

----------------+------------------------- 

Nest-Test2  | 2013-04-10 15:06:18.287 

我想你可以嘗試像這樣的陳述:

select * from tbl1 where TXDATE<'2-2-2013' and TXDATE is not NULL 

此聲明也適用於我的環境。