添加日期比较时MySQL查询不工作

添加日期比较时MySQL查询不工作,mysql,phpmyadmin,Mysql,Phpmyadmin,如果从WHERE子句中删除最后一个条件的日期为结算日期,则查询工作正常 我也尝试过像操作符一样,在不同的条件下,但没有一个产生结果 结算日期列为日期时间类型,格式为“yyyy-mm-dd hh:mm:ss” 我也试过了 SETTLEMENT_DATE BETWEEN "2010-04-01 00:00:00" AND "2010-04-01 23:59:59" 我希望查询显示特定日期的结果 SELECT date_format(SETTLEMENT_DATE,"%H:%i") AS "TIME

如果从WHERE子句中删除最后一个条件的日期为结算日期,则查询工作正常 我也尝试过像操作符一样,在不同的条件下,但没有一个产生结果 结算日期列为日期时间类型,格式为“yyyy-mm-dd hh:mm:ss” 我也试过了

SETTLEMENT_DATE BETWEEN "2010-04-01 00:00:00" AND "2010-04-01 23:59:59"
我希望查询显示特定日期的结果

SELECT date_format(SETTLEMENT_DATE,"%H:%i") AS "TIME",
SUM(CASE WHEN CORPORATE_ID=1328727040 THEN 1 ELSE 0 END ) AS "TOTAL",
SUM(CASE WHEN CORPORATE_ID=1328727040 AND ( QUOTA_CODE=0 OR QUOTA_CODE =1) THEN 1 ELSE 0 END) AS "Non-Tatkal",
SUM(CASE WHEN CORPORATE_ID=1328727040 AND QUOTA_CODE=2 THEN 1 ELSE 0 END) AS "Tatkal"
FROM ticket
WHERE PNR_NUMBER!="0"
AND CURRENT_RES_STATUS NOT IN (9,10,11,16)
AND date(SETTLEMENT_DATE) = str_to_date('01-04-2014', '%Y-%m-%d')
GROUP BY date_format(SETTLEMENT_DATE,"%H:%i")
感谢您的帮助

问题在于:

str_to_date('01-04-2014', '%Y-%m-%d')
当您像这样运行它时:

SELECT STR_TO_DATE('01-04-2014', '%Y-%m-%d');
它给出:

'2001-04-20'

但是您的日期在以下范围内:2010-04-01 00:00:00和2010-04-01 23:59:59。我通常发现以下类型的条件与日期配合得很好

SETTLEMENT_DATE >= '2010-04-01' 
AND SETTLEMENT_DATE < '2010-04-02'

这样,您就不需要使用基于日期的字段,而且>=开始日期是显而易见的,但是第二天的午夜时间小于次日的时间与您的2010-04-01晚上11:59:59相同,但不包括2010-04-02。

您现在想要什么,2014年或2010年?但为了比较,在where条款中,我在“结算日期”列中应用了日期,因此它将只生成用于比较的日期。如果此结算日期>=日期1,且结算日期<日期1+1,则此项工作可以使用日期添加感谢help@SunnyArora,只要这个概念起作用。。。无论是固定字符串还是添加日期。处理日期和时间组件,这有助于消除任何歧义。还调整为日期周围的单引号,而不是双引号。