Как найти дни по сравнению с датой? - PullRequest
0 голосов
/ 26 октября 2009

Использование SQL Server 2005

Table1

Дата

20090501
20090502
20090503
20090504
20090505

...

Я хочу найти сравнение дня с датой, затем я хочу пропустить дату, когда день = воскресенье.

Ожидаемый результат

20090501
20090502
20090504
20090505

..

Итак, 20090503 пропущен, потому что сегодня воскресенье.

Как сделать запрос?

Ответы [ 4 ]

3 голосов
/ 26 октября 2009

много способов; вот один;

SELECT column
FROM Table
WHERE DATENAME(dw, column) <> 'Sunday'
1 голос
/ 26 октября 2009

Хорошо, я понятия не имею, что вы подразумеваете под "дата сравнивается с датой", но чтобы пропустить воскресенье, вы можете использовать

SELECT    Column
FROM      Table
WHERE     DatePart(weekday, Column) <> 7

Вы должны проверить, что вы установили для DATEFIRST, потому что это важно для того, что DATAPART (день недели) возвращает в воскресенье. На английском SQL-сервере стандарт должен возвращать 7, поэтому, если вы используете английский сервер и ничего не изменили, он должен работать.

0 голосов
/ 26 октября 2009

Ну, вы можете получить его в формате DateTime, а затем, как только вы это сделаете, вы можете сделать что-то подобное для предложения where.

WHERE DATEPART(dw, DateColumn) <> 7

Предполагается, что ваш SQL Server по умолчанию настроен на английский язык.

0 голосов
/ 26 октября 2009

Полностью локализованная версия (спасибо всем за указание на это):

SELECT *
FROM MyTable
WHERE DATEPART(weekday, MyColumn) <> 8 - @@DATEFIRST
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...