我的表名是tbl1
。文件分为id
,name
,txdate
。
| ID | NAME | TXDATE |
| 1 | RAJ | 1-1-2013 |
| 2 | RAVI | |
| 3 | PRABHU | 25-3-2013 |
| 4 | SAT | |
现在我想对check txdate < 2-2-2013
使用select查询,其中行的txdate不为空,select也会返回哪些行的txdate为空。
结果就像这样
| ID | NAME | TXDATE |
| 1 | RAJ | 1-1-2013 |
| 2 | RAVI | |
| 4 | SAT | |
有任何可行的解决方案吗? 没有使用联盟可能吗?
答案 0 :(得分:1)
我现在不使用您正在使用的数据库以及TXDATE
的数据类型。
我刚试过我的postgreSQL 9.2,其字段是“没有时区的时间戳”。
我在表格中有三行,例如:
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
此声明也适用于我的环境。
答案 1 :(得分:0)
假设TXDATE
的数据类型为DATE
,那么您可以使用WHERE "TXDATE" < '2013-2-2' OR "TXDATE" IS NULL
。类似的东西:
SELECT *
FROM table1
WHERE "TXDATE" < '2013-2-2'
OR "TXDATE" IS NULL;
看到它的实际效果: