EF Core SQL Server использует GETDATE () вместо C # DateTime.Now - PullRequest
4 голосов
/ 20 мая 2019

Я заметил, что в случае, если мой запрос C # содержит

(e => e.MyDateTimeData == DateTime.Now)

, сгенерированный SQL использует

WHERE [e].[MyDateTimeData] = GETDATE()

Когда часовой пояс клиента EF отличается от SQL-узла SQL ServerСерверный процесс пользователя часового пояса, это не будет хорошо.

Часовые пояса могут отличаться, даже если клиентский процесс и процесс SQL Server выполняются на одном хосте.

Что-то отсутствует, или это реальная проблема?

1 Ответ

0 голосов
/ 20 мая 2019

Если вы хотите использовать клиентское время, то передайте его как параметр, например:

var dt = DateTime.Now;
. . .
var q = db.SomeTable.Where(e => e.MyDateTimeData == dt)
...