EF增值税表计算特定日期的增值税税率
本文关键字:增值税 日期 税率 计算 EF | 更新日期: 2023-09-27 18:04:33
我正在使用实体框架在C#中开发一个MVC3应用程序。我有一个增值税税率表,其中有增值税税率、开始日期和结束日期字段。开始日期和结束日期可以为空,表示这是历史利率或正在进行的利率。我想弄清楚的是,如何创建一个单独的查询,将这些null考虑在内,以便在我通过一个日期时给我增值税税率。(nb示例显示英国日期格式dd/mm/yyyy
+--------------+-------------+----------+|开始日期|结束日期|增值税税率|+--------------+-------------+----------+|Null |01/01/2011|19|+--------------+-------------+----------+|2011年1月2日| 2011年8月8日| 20|+--------------+-------------+----------+|2011年8月9日|无效|21|+--------------+-------------+----------+
感谢您抽出时间
如果您使用EF,您可以执行以下操作:
DateTime first = DateTime.Parse("01-01-1900");
DateTime last = DateTime.Parse("01-01-2100");
var rate = db.VatRates.Where(
vr => input > (vr.StartDate ?? first) && input < (vr.EndDate ?? last)).First().Rate;
根据下面的评论,如果没有EndDate列,请尝试以下操作:
DateTime start = DateTime.Parse("01-01-1900");
var rate = db.VatRates.Where(vr => input > (vr.StartDate ?? start))
.OrderByDescending(vr => vr.StartDate).First().Rate;
适用于我:(
假设您通过@Date
SELECT VATRate
FROM VATRateTable
WHERE @Date
BETWEEN ISNULL(StartDate, '1900-01-01') AND ISNULL(EndDate, '2100-01-01')