1

我有一个 sql 语句,它返回我每月的第一天:

DATEADD(month, DATEDIFF(month, 0, @input), 0)

如何使用 SQLFunctions.DateAdd 和 SQLFunctions.DateDiff 重新创建此调用?

提前致谢

4

1 回答 1

0

如果您真的在使用 LINQ-to-SQL:

var zero = new DateTime(2000, 1, 1);

var resxxxx = (from p in ctx.Addresses 
               select new { 
                          month = zero.AddMonths(SqlMethods.DateDiffMonth(zero, p.Date)) 
                          }
              ).FirstOrDefault();

重要的部分是month = zero.AddMonths(SqlMethods.DateDiffMonth(zero, p.Date))

请注意,我使用了zero = new DateTime(2000, 1, 1);,但本月的任何 1 日都可以(1980 年 1 月 1 日、1983 年 7 月 1 日、2100 年 12 月 1 日...)。这是您的 SQL 命令中的两个0s。p.Date是您要计算当月第一天的日期 (so @input)。

于 2013-09-01T19:27:17.267 回答