2013-06-03 112 views
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,按照文档here,然后我得到错误:

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

极限1250

编辑 TDate有日期时间(时间戳)的数据类型。我就是这样写的,以方便阅读。但不管类型如何,我都可以在需要时在类型之间轻松地进行投射。

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

+2

笏时间是这个'2013年5月1日,867AM'? TDATE的数据类型是什么? –

+0

请在提问时始终表明您的努力。 – hims056

+0

什么sql? MySQL的?甲骨文?或SQL Server? –

回答

6

试试这个:

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

UPDATE

条件必须是(0,6)(0,1)

+0

这有帮助。我用火鸟等值线更新我的问题,但它仍然呻吟。 – coderama

+0

我不明白。你有没有试过我的更新? –

+0

我试过你的更新。看到我上面的评论。 – coderama

相关问题