SQL在同一周内获取记录

SQL在同一周内获取记录,sql,sqlite,select,Sql,Sqlite,Select,我有一个表,其中包含一列指示日期的记录。给定一个记录,我想选择与该记录在同一周内的所有记录。SQL如何做到这一点 我应该说我正在使用SQLite。使用datediff()函数: datediff(ww,start_date,end_date) < 1 datediff(ww、开始日期、结束日期)

我有一个表,其中包含一列指示日期的记录。给定一个记录,我想选择与该记录在同一周内的所有记录。SQL如何做到这一点

我应该说我正在使用SQLite。

使用
datediff()
函数:

datediff(ww,start_date,end_date) < 1
datediff(ww、开始日期、结束日期)<1
使用
datediff()
函数:

datediff(ww,start_date,end_date) < 1
datediff(ww、开始日期、结束日期)<1
您可以使用来指定所需的记录

 SELECT * FROM records WHERE datecolumn between 'YYYY/MM/DD' AND 'YYYY/MM/DD'
可以使用指定所需的记录

 SELECT * FROM records WHERE datecolumn between 'YYYY/MM/DD' AND 'YYYY/MM/DD'

您可以将
DATEPART
wk
一起使用以获取当前周。然后检查是否相等。 在本例中,我还检查了
yy
,以确保您没有检查前一周的年份

SELECT * 
FROM TABLE
WHERE DATEPART(wk, TABLE.DATECOLUMN) 
        = DATEPART(wk, (SELECT DATECOLUMN FROM TABLE WHERE ID = GivenID))
    AND DATEPART(yy, TABLE.DATECOLUMN) = DATEPART(yy, (SELECT DATECOLUMN FROM TABLE WHERE   ID = GivenID))
SQLITE的更新

在SQLLite中执行此操作,然后。这给了你:

SELECT * 
FROM TABLE
WHERE STRFTIME('%W', TABLE.DATECOLUMN) 
        = STRFTIME('%W', (SELECT DATECOLUMN FROM TABLE WHERE ID = GivenID))
    AND STRFTIME('%Y', TABLE.DATECOLUMN) 
        = STRFTIME('%Y', (SELECT DATECOLUMN FROM TABLE WHERE ID = GivenID))

您可以将
DATEPART
wk
一起使用以获取当前周。然后检查是否相等。 在本例中,我还检查了
yy
,以确保您没有检查前一周的年份

SELECT * 
FROM TABLE
WHERE DATEPART(wk, TABLE.DATECOLUMN) 
        = DATEPART(wk, (SELECT DATECOLUMN FROM TABLE WHERE ID = GivenID))
    AND DATEPART(yy, TABLE.DATECOLUMN) = DATEPART(yy, (SELECT DATECOLUMN FROM TABLE WHERE   ID = GivenID))
SQLITE的更新

在SQLLite中执行此操作,然后。这给了你:

SELECT * 
FROM TABLE
WHERE STRFTIME('%W', TABLE.DATECOLUMN) 
        = STRFTIME('%W', (SELECT DATECOLUMN FROM TABLE WHERE ID = GivenID))
    AND STRFTIME('%Y', TABLE.DATECOLUMN) 
        = STRFTIME('%Y', (SELECT DATECOLUMN FROM TABLE WHERE ID = GivenID))

似乎您必须使用类似于此的内容,但经过修改,以使开始日期基于所选记录的日期。似乎您必须使用类似于此的内容,但经过修改,以使开始日期基于所选记录的日期。