SQL仅返回选定周的日期

时间:2012-01-12 15:59:46

标签: sql date

我正在撰写时间表报告上的SQL查询。我需要报告只返回所选日期一周的详细信息。

例如,如果我选择02/01/2012(dd / MM / yyyy),那么它应该仅在02/01/2012和08/01/2012之间返回结果。

由于

4 个答案:

答案 0 :(得分:1)

SELECT
  *
FROM
  yourTable
WHERE
  dateField >= @yourDate
  AND dateField < @yourDate + 7

SQL的某些变体可能具有将7天添加到日期值的特定方法。如...
- DateAdd(Day, 7, @date)
- DATE_ADD(@date, INTERVAL 7 DAYS)
- 等等

此选项兼容索引,并且对具有时间部分和日期部分的数据库字段具有弹性。

答案 1 :(得分:0)

SELECT * FROM table_name
WHERE date BETWEEN '1/02/2012' AND '1/08/2012';

您可以使用日期和日期+6替换示例日期。

在这里查看例如:http://www.roseindia.net/sql/sql-between-datetime.shtml

答案 2 :(得分:0)

最简单的是等效于SQL引擎中的WEEK_OF_YEAR函数

但你也可以使用DATE_ADD

WHERE table.date BETWEEN target_date AND DATE_ADD(target_date,INTERVAL 7 DAY)

答案 3 :(得分:0)

这取决于您正在使用的数据库系统。 MySQL有一个函数calles WEEK(),SQL Server可以用DATEPART()函数做这样的事情:

MySQL的:

SELECT 
* 
FROM table
WHERE WEEK(date_col) = WEEK('02/01/2012');

SQL SERVER:

   SELECT 
    * 
    FROM table
    WHERE DATEPART(WEEK, datecol) = DATEPART(WEEK,'02/01/2012');