php mysql比较相等的日期

时间:2013-12-20 15:27:40

标签: php mysql

我使用php访问2个表中的字段。

这部分工作得很好

   $sql=mysql_query('SELECT * FROM user_weeks WHERE user_id = '.$_SESSION["user_id"].' ORDER BY date DESC') or die(mysql_error());

通过这样做我得到的日期很好

    $infodate=$info["date"];
    echo $infodate;

然而,我正试图将该日期与其他表格中的日期进行比较

$sql2=mysql_query('SELECT * FROM weekly_ROI WHERE date = '.$infodate.' ') or die(mysql_error());
然而,这没有给我任何结果。我是个菜鸟很抱歉,如果这个代码是如此“2000年又迟到”

3 个答案:

答案 0 :(得分:3)

假设两个日期字段都是日期类型,您需要在反引号中包装名称日期,因为日期是保留字,您需要将日期用引号括起来。

$sql2=mysql_query('SELECT * FROM weekly_ROI WHERE `date` = "'.$infodate. '"') or die(mysql_error());

此外,不推荐使用mysql_ *函数。您需要研究使用PDO或mysqli来查询数据库。

答案 1 :(得分:2)

date 是保留字用于包装在反引号`date

$sql2=mysql_query('SELECT * FROM weekly_ROI WHERE `date` = "'.$infodate.'" ') or die(mysql_error());

答案 2 :(得分:0)

据推测,您在查询中使用了标准yyyy-mm-dd类型的日期字符串,这意味着您在日期值周围缺少引号:

$sql2=mysql_query('SELECT * FROM weekly_ROI WHERE date = '.$infodate.' ')
                                                         ^--here          ^-- here

您的查询将如下所示

... WHERE date = 2013-12-18

并被评估为简单的数学减法:

... WHERE date = 1983

你需要引用:

.... date = "' . $infodate . '"');
            ^--               ^--