我有一张桌子:
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
Run Code Online (Sandbox Code Playgroud)
我需要一个返回所有TDate周末项目的查询.我该怎么写这样的查询?
我有多远
select
table.*,
EXTRACT (DAY FROM table.tdate )
from table
Run Code Online (Sandbox Code Playgroud)
我使用EXTRACT做了一个选择,看看我是否能得到正确的值.但是,使用参数DAY的EXTRACT返回月份的日期.如果我改为使用WEEKDAY,根据这里的文档,那么我得到错误:
ERROR: timestamp units "weekday" not recognized
SQL state: 22023
Run Code Online (Sandbox Code Playgroud)
限制1250
EDIT TDate具有日期时间(时间戳)的数据类型.我只是为了方便阅读而写的.但无论何种类型,如果需要,我都可以轻松地在类型之间进行转换.
我知道约会4月5日和5月是周末(因为他们是周六和周日).firebird是否允许一种编写查询的方法,如果它们在周末出现,它们将返回日期.
试试这个:
SELECT ID, Name, TDate
FROM your_table
WHERE EXTRACT(WEEKDAY FROM TDate) IN (6,0)
Run Code Online (Sandbox Code Playgroud)
UPDATE
条件必须(0,6)不是(0,1).
| 归档时间: |
|
| 查看次数: |
1258 次 |
| 最近记录: |