我有一张桌子:
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是否允许一种编写查询的方法,如果它们在周末出现,它们将返回日期。
答案 0 :(得分:6)
试试这个:
SELECT ID, Name, TDate
FROM your_table
WHERE EXTRACT(WEEKDAY FROM TDate) IN (6,0)
<强>更新强>
条件必须为(0,6)
而不是(0,1)
。