我正在撰写时间表报告上的SQL查询。我需要报告只返回所选日期一周的详细信息。
例如,如果我选择02/01/2012(dd / MM / yyyy),那么它应该仅在02/01/2012和08/01/2012之间返回结果。
由于
答案 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');