mysql-返回日期等于某个值的行

mysql-返回日期等于某个值的行,mysql,Mysql,我的评估表如下所示- SLNO EID Period_From Period_To 1 101 2017-06-01 2017-11-14 2 102 2017-07-01 2017-09-30 3 103 2017-05-01 2017-07-31 若周期_到和currentdate等于75天,则行应返回1,否则我将在查询下面使用0- SELECT SLNO,EID, Period_From,Period_To,(CASE WHEN

我的评估表如下所示-

SLNO  EID  Period_From   Period_To
 1    101  2017-06-01    2017-11-14
 2    102  2017-07-01    2017-09-30
 3    103  2017-05-01    2017-07-31
若周期_到和currentdate等于75天,则行应返回1,否则我将在查询下面使用0-

 SELECT SLNO,EID, Period_From,Period_To,(CASE WHEN (PERIOD_TO = (select DATE_ADD(PERIOD_TO,INTERVAL 75 DAY))) THEN 1 ELSE 0 END) AS ASSESSMENT_ENABLE from assessment;
我得到的结果是

    SLNO  EID  Period_From   Period_To    ASSESSMENT_ENABLE
     1    101  2017-06-01    2017-11-14    0
     2    102  2017-07-01    2017-09-30    0
     3    103  2017-05-01    2017-07-31    0

我得到了错误的结果。请帮帮我

我认为您不需要子查询。试试这个它对我有用

SELECT SLNO,EID, Period_From,Period_To,
(CASE WHEN (PERIOD_TO = DATE_FORMAT(CURDATE(), '%Y-%m-%d') - INTERVAL 75 DAY) THEN 1 ELSE 0 END) 
AS ASSESSMENT_ENABLE 

使用
CURRENT_DATE
DATEDIFF
函数的简短解决方案:

SELECT 
    SLNO, EID, Period_From, Period_To,
    IF(DATEDIFF(CURRENT_DATE(), date_to) = 75, 1, 0) AS ASSESSMENT_ENABLE
FROM
    ASSESSMENT
你可以试试这个-

select
    SLNO,
    EID,
    Period_From,
    Period_To,
    case when (DATEDIFF(now(),PERIOD_TO)=75) then 1 else 0 end as ASSESSMENT_ENABLE
from
    assessment;

你为什么在这里使用
DATE\u格式
?你不必使用它我从数据库复制它,我有不同的格式