2

我有一张桌子:

 ID | Name | TDate
 1  | John | 1 May 2013, 8:67AM
 2  | Jack | 2 May 2013, 6:43AM
 3  | Adam | 3 May 2013, 9:53AM
 4  | Max  | 4 May 2013, 2:13AM
 5  | Leny | 5 May 2013, 5:33AM

我需要一个查询,它将返回TDate周末的所有项目。我将如何编写这样的查询?

到目前为止我有什么

select 
  table.*,
  EXTRACT (DAY FROM table.tdate )
from table

我使用 EXTRACT 进行了选择,以查看是否可以获得正确的值。但是,带有参数 DAY 的 EXTRACT 返回月份中的哪一天。如果我按照此处的文档改用 WEEKDAY,则会收到错误消息:

ERROR: timestamp units "weekday" not recognized
SQL state: 22023

限制 1250

EDIT TDate 的数据类型为日期时间(时间戳)。为了方便阅读,我就这么写了。但无论类型如何,如果需要,我可以轻松地在类型之间进行转换。

我知道 5 月 4 日和 5 月 5 日是周末(因为它们是周六和周日)。firebird 是否允许编写一个查询,如果它们是在周末,它将返回日期。

4

1 回答 1

6

尝试这个:

SELECT ID, Name, TDate
FROM your_table
WHERE EXTRACT(WEEKDAY FROM TDate) IN (6,0)

更新

条件一定(0,6)不是(0,1)

于 2013-06-03T06:36:24.003 回答