Как добавить день в день в Linq для SQL

Я пишу этот код. Здесь dt является вводом в функцию, а также someint. Столбец Exp является столбцом даты T-SQL, который поставляется как DateTime через Linq.

return (from a in dataContext.TableOfA
       where a.name == "Test" &&
       a.Exp.Value.AddDays(Convert.ToDouble(Someint)) >= new DateTimeOffset(dt)
       select a).First();

В C # вы можете добавить двойное число как день к дате. Это означает, что вы можете добавить 1,5 дня. В T-SQL вы можете добавить только 1 день, затем 12 часов. Вы должны добавить int для каждой части. Поэтому, когда Linq переводит AddDays в T-SQL, он преобразует мое количество дней в миллисекунды и добавляет их. Это позволяет ему дать всю точность, которую двойник дает C #.

Вот'с руб. Когда это попадает в SQL, я получаю ошибку:

Функция datepart в миллисекундах не поддерживается функцией dateadd для типа данных date

По сути, вы можетет добавить миллисекунды к дате. Ну, не шучу. Но как мне получить то, что здесь переводится? Я хочу добавить int дней к дате. Единственное, что нужно сделать, чтобы добавить их негатив к другому парню, с которым я сравниваю? Что если я хочу сравнить столбцы при добавлении в один?

Обновление 1

Кейт писал: «Такая команда, как datepart (миллисекунда, 10000, myDate), поддерживается в T-SQL по крайней мере начиная с SQL Server 2000. Эта ошибка говорит о том, что используемая вами база данных не поддерживает часть даты с миллисекундами, что мне кажется странным ,

Обратите внимание, что я использую SQL Server 2008. Он не поддерживается типом данных DATE. Поддерживается на datetime.

Ответы на вопрос(9)

Ваш ответ на вопрос