SQL возвращает даты только для выбранной недели - PullRequest
0 голосов
/ 12 января 2012

Я пишу SQL-запрос в отчете расписания. Мне нужен отчет, чтобы вернуть только данные за неделю выбранной даты.

Например, если я выберу 02/01/2012 (дд / мм / гггг), то результаты должны возвращаться только в период с 01.02.2012 по 08.01.2012.

Спасибо

Ответы [ 4 ]

1 голос
/ 12 января 2012
SELECT
  *
FROM
  yourTable
WHERE
  dateField >= @yourDate
  AND dateField < @yourDate + 7

Некоторые варианты SQL могут иметь особые способы добавления 7 дней к значению даты. Такие как ...
- DateAdd(Day, 7, @date)
- DATE_ADD(@date, INTERVAL 7 DAYS)
и т. д.

Этот параметр удобен для индексов и устойчив к полям базы данных, в которых есть части времени, а также части даты.

0 голосов
/ 12 января 2012

Это зависит от системы баз данных, которую вы используете. В MySQL есть функция, называемая 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');
0 голосов
/ 12 января 2012

Вы, проще всего, эквивалентны WEEK_OF_YEAR функции в вашем движке SQL

Но вы также можете использовать DATE_ADD

WHERE table.date BETWEEN target_date AND DATE_ADD(target_date,INTERVAL 7 DAY)
0 голосов
/ 12 января 2012
SELECT * FROM table_name
WHERE date BETWEEN '1/02/2012' AND '1/08/2012';

вы можете заменить дату в качестве примера вашей датой и вашей датой + 6.

Смотрите здесь, например: http://www.roseindia.net/sql/sql-between-datetime.shtml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...