首页 > 解决方案 > 实体框架 sqlquery 传递当前日期

问题描述

我想调用一个连接到 Oracle 数据库的 SQL 查询。对于查询中的每个表,我需要检查 SYSDATE 的字段

SELECT
    per.PERSON_ID
    ...
FROM 
    PERSON_V per
JOIN 
    SALARY sal ON sal.PERSON_ID = per.PERSON_ID 
                  AND sal.EFF_START_DATE <= SYSDATE 
                  AND sal.EFF_END_DATE > SYSDATE
    ...
WHERE 
    per.EFF_START_DATE <= SYSDATE 
    AND per.EFF_END_DATE > SYSDATE

在我的代码中,我执行以下操作

        var sql = @"SELECT
                    per.PERSON_ID
                    ...
                    FROM PERSON_V per
                    JOIN SALARY sal
                        ON sal.PERSON_ID = per.PERSON_ID AND sal.EFF_START_DATE <= GETDATE() AND sal.EFF_END_DATE > GETDATE()
                    ...
                    WHERE per.EFF_START_DATE <= GETDATE() AND perEFF_END_DATE > GETDATE()";
        var oracle_employees = _oracleDbContext.Database.SqlQuery<List<EmployeeDetails>>(sql);

我得到 GETDATE 是无效的标识符。我尝试使用 SYSDATE、DateTime.Now、日期作为字符串,但它们都不起作用。从代码中将日期传递给查询的正确方法是什么。

标签: c#oracleentity-frameworkgetdate

解决方案


推荐阅读