#c# #asp.net #sql-server #entity-framework #asp.net-web-api
Вопрос:
Я хочу запросить базу данных с помощью столбца с параметром datetimeoffset(7). Для этого требуется дата начала и дата окончания, как показано в приведенном ниже коде.
мой URL-адрес выглядит примерно так
http://localhost:60018/v1/getDepartPoints?startDate=2015-08-08amp;endDate=2015-08-08
Ниже приведен мой запрос, который вернул список 0
var result = Db.Points.Where(t => t.DepartureTime > startDate amp;amp; t.DepartureTime < endDate).ToList();
Ниже приведен sql-запрос, который работает SELECT * FROM [dbo].[Points] WHERE DepartureTime = '2015-08-08 04:35:00.0000000 -10:00'
Этот приведенный ниже запрос не сработал, как я ожидал, после приведения к дате и времени SELECT * FROM [dbo].[Points] WHERE cast(DepartureTime as datetime) = '2015-08-08'
Как я могу заставить свой запрос возвращать ожидаемый список с датой и временем, переданным в datetimeoffset в базе данных?
Комментарии:
1. Я думаю, вы имеете в виду datetimeoffset, но вопрос не имеет смысла в его нынешнем виде
2. Да, datetimeoffset, я обновлю вопрос mu
3.
'2015-08-08 04:35:00.0000000 -10:00'
и'2015-08-08'
это совершенно разные времена; почему вы ожидаете, что они вернут одно и то же значение? Последнее можно было бы предположить как'2015-08-08 00:00:00.0000000 {Server Offset}
.4. @Larnu спасибо, что указал на это. Я ищу способ заставить это работать. должен ли я сделать обязательным для пользователей API передачу чего
'2015-08-08 00:00:00.0000000 -10:00' or there is a way to manipulate it in the code when they pass
-либо ‘2015-08-08″`5. @techstack если пользователи перейдут в «2015-08-08», в какое время ожидается? Это время-полночь по Гринвичу? Полночь по местному времени — полночь по серверному времени? Если вы используете datetimeoffset — тогда клиенту (пользователям) необходимо отправить datetimeoffset, чтобы вы знали, какое время передается в процедуру.