我如何看周日是否在周末?

时间:2013-06-03 06:25:13

标签: sql firebird

我有一张桌子:

 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,根据文档here,我会收到错误:

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

限制1250

修改 TDate具有datetime(时间戳)的数据类型。我只是为了方便阅读而写的。但无论类型如何,如果需要,我都可以轻松地在类型之间进行转换。

我知道约会4月5日和5月是周末(因为它们属于周六和周日)。 firebird是否允许一种编写查询的方法,如果它们在周末出现,它们将返回日期。

1 个答案:

答案 0 :(得分:6)

试试这个:

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

<强>更新

条件必须为(0,6)而不是(0,1)