фильтр по дате в SQL заявление не работает - PullRequest
1 голос
/ 14 ноября 2011

я не могу отфильтровать по дате, когда я использую Visual Studio 2010, и C # вот упрощенное утверждение, которое я пытаюсь безуспешно

SELECT     date_dt, ident_1, ident_2, ident_3
FROM         p240538
WHERE     (date_dt >= DateTime('"2011' / 10 / '19"'))

или

SELECT     date_dt, ident_1, ident_2, ident_3
FROM         p240538
WHERE     (date_dt >= "2011/10/19"))

любые идеи ??

спасибо

Ответы [ 4 ]

0 голосов
/ 14 ноября 2011

Попробуйте это ... SELECT date_dt, ident_1, ident_2, ident_3 FROM p240538 WHERE date_dt >= '10/19/2011' Код SQL и не имеет ничего общего с Visual Studio или C #

0 голосов
/ 14 ноября 2011

Почему бы вам не попробовать:

SELECT    date_dt, ident_1, ident_2, ident_3
FROM      p240538
WHERE     CONVERT(VARCHAR, date_dt, 112) >= 20111019

Конечно, нам было бы лучше, если бы вы могли предоставить структуру данных / тип / настройку столбца date_dt (поскольку мое предложение могло бы резкоизменение должно date_dt быть индексом, и какую дату вам нужно предоставить (если она всегда в формате yyyy/mm/dd). Является ли дата также параметром?

0 голосов
/ 14 ноября 2011

Я думаю, что вы были близки.Похоже, вы хотите что-то вроде:

SELECT     date_dt, ident_1, ident_2, ident_3
FROM         p240538
WHERE     (date_dt >= DateTime(2011, 10, 19))

РЕДАКТИРОВАТЬ: Сначала подумал, что это был вопрос linq, и после отправки понял, что это вопрос SQL.Попробуйте:

SELECT     date_dt, ident_1, ident_2, ident_3
FROM         p240538
WHERE     (date_dt >= convert(DateTime, '10/19/2011', 101)
0 голосов
/ 14 ноября 2011
SELECT     date_dt, ident_1, ident_2, ident_3 
FROM         p240538 
WHERE     datediff(dd, date_dt, getdate()) <= @theMaxNumberOfDayDifference

Вам нужна функция DATEDIFF в SQL Server. Что он делает, это сравнивает даты. Я использовал переменную для сравнения, но вы можете иметь жестко запрограммированное значение, если хотите. Он сравнивает ваше поле date_dt с текущей датой. Если количество дней (вы можете изменить dd на любую другую область сравнения, как указано в моей ссылке) меньше или равно сегодняшней дате, тогда он вернет эти записи.

РЕДАКТИРОВАТЬ: предполагается, что поле date_dt имеет datetime или эквивалентный тип данных. Вы также можете заменить getdate() любой действительной спецификацией datetime, включая строку даты и времени, с которыми вы хотите сравнить.

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