SQL-запрос с длинной датой? - PullRequest
3 голосов
/ 05 августа 2011

Я пытаюсь передать SQL-запрос через c #, в настоящее время он основан только на дне, месяце и году, а время всегда установлено на 0 EG 1997-10-28 00.00.00.000, что здорово, поскольку время никогда не меняется легкодля меня просто выбрать Где дата равна календарной дате.

Однако в поле «Начало» время отличается для каждой записи, например, 1899-12-30 14.14: 00.00.000, 1899-12-30 15.14: 30.00.000.(Секунды вниз всегда одинаковы).

Так что мне нужен запрос, который вернет все результаты выбранной даты в поле «Пуск».Как бы я это сделал?

EG ЕСЛИ я нажимаю на календарь, который проходит 1997-10-28 00.00.00.000, я хочу получать результаты каждый раз в этот день !.Как мне это сделать?

Спасибо за любой ввод.

РЕДАКТИРОВАТЬ: Есть ли способ отформатировать дату, что у меня есть в SQL?Это происходит из старой базы данных доступа!и как вы можете видеть выше, это 1899-12-30?не 1998, я не знаю, почему это произошло!

Ответы [ 4 ]

3 голосов
/ 05 августа 2011
WHERE DATEDIFF(dd, your_start_field, @your_param) = 0
3 голосов
/ 05 августа 2011

Вы должны выбрать все записи между сегодняшним днем ​​и завтрашним днем ​​без учета завтрашней даты.

WHERE EventDate >= StartDate AND EventDate < DATEADD(d, 1, StartDate)
0 голосов
/ 05 августа 2011

Этот SQL DATEADD(d,datediff(d,0,startdate),startdate) преобразует дату со временем в просто дату;

например,

Select field1,field2 from mytable where DATEADD(d,datediff(d,0,startdate),startdate)='1997-10-28'
0 голосов
/ 05 августа 2011

Можете ли вы не просто запросить часть даты. Я думаю, что это должно работать ...

SELECT * FROM Table1 WHERE StartDate = '1997-10-28'

РЕДАКТИРОВАТЬ: Выше может не работать, но следующие должны покрывать потребности

SELECT * FROM Table1 WHERE StartDate >= '1997-10-28 00:00:00.000' AND StartDate < '1997-10-29 00:00:00.000'

(обратите внимание, вторая дата - следующая дата)

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