-1

我在表格中有一个日期列表

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___';但这没有用....

4

2 回答 2

2

假设这是 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 类型。

于 2013-11-14T19:07:03.253 回答
0

OldProgrammer 是绝对正确的,他的答案将适用于 Oracle 和 PostgreSQL。万一有人在外面使用 T-SQL、Access、mySQL 或 SQLite,它看起来像这样:

Select *

From Table1

Where MONTH(dates) <> 10
于 2013-11-15T19:31:12.327 回答