我在表格中有一个日期列表
DATES
----------
10-SEP-03
10-SEP-03
15-SEP-03
15-SEP-03
17-SEP-03
18-SEP-03
30-SEP-03
01-OCT-03
01-OCT-03
05-OCT-03
08-OCT-03
05-MAY-03
10-JUN-03
12-JUN-03
我希望它在排除 october 的同时显示它,我该如何做到这一点?我试过在哪里约会!= '%OCT___'
;但这没有用....
假设这是 Oracle(因为您没有说明,而是显示 SQLPLUS),并且您有一个名为 table1 的表:
select *
from table1
where extract( month from dates ) <> 10
SQLPLUS 中显示的格式是显示格式,而不是数据库中的内部表示。会话的格式由 NLS_DATE_FORMAT 设置控制,详见此处。
为了将来参考,将日期字段与不符合日期格式的文字进行比较是不好的做法。例如,如果有人将 NLS_DATE_FORMAT 设置为“MM/DD/YYYY”,那么使用“OCT”将不起作用,因为默认格式期望“10”作为月份值。始终最好使用 TO_DATE 函数将您的文字值转换为正确的 DATE 类型。
OldProgrammer 是绝对正确的,他的答案将适用于 Oracle 和 PostgreSQL。万一有人在外面使用 T-SQL、Access、mySQL 或 SQLite,它看起来像这样:
Select *
From Table1
Where MONTH(dates) <> 10