title: How to add day to date in Linq to SQL
body: <p>I am writing this code. Here dt is input into the function, as well as someint. The column Exp is a T-SQL date column, which comes as a DateTime through Linq.</p>
  
  <pre><code>return (from a in dataContext.TableOfA
         where a.name == "Test" &amp;&amp;
         a.Exp.Value.AddDays(Convert.ToDouble(Someint)) &gt;= new DateTimeOffset(dt)
         select a).First();
  </code></pre>
  
  <p>In C#, you can add a double as a day to a date time. Meaning you can add 1.5 days. In T-SQL you can only add 1 day, then 12 hours. You must add an int for each part. So when Linq translates AddDays to T-SQL, it converts my number of days to milliseconds, and adds those. This allows it to give all the precision the double gives C#.</p>
  
  <p>Here's the rub. When this gets to SQL, I get the error:</p>
  
  <blockquote>
    <p>The datepart millisecond is not
    supported by date function dateadd for
    data type date</p>
  </blockquote>
  
  <p>Basically you can't add milliseconds to a date. Well no kidding. But how do I get something that translates here? I want to add int days to a date. Is the only want to do this to add the negative of them to the other guy I am comparing against? What if I wanted to compare to columns while adding to one?</p>
  
  <p><strong>Update 1</strong></p>
  
  <blockquote>
    <p>Keith wrote, A command like
    datepart(millisecond, 10000, myDate)
    has been supported in T-SQL since at
    least SQL Server 2000. This error
    suggests that whatever database you
    are using does not support the
    millisecond date part, which seems
    strange to me.</p>
  </blockquote>
  
  <p>Please note I am using SQL Server 2008. It is not supported on the DATE data type. It is supported on datetime.</p>