将字符串数据类型与日期数据类型PHP MYSQL进行比较

时间:2011-02-10 15:51:23

标签: php mysql

在我的MySQL数据库中,我将此Time数据类型作为我的一个值: 06:00:00 。我有以下查询将时间检查为必须满足的条件之一

$time = "06:00:00";

$getdetails=SELECT First_Name, Last_Name, EMAIL 
FROM parents 
WHERE Email_Receive_Time = $time; 

$results=mysql_query($getdetails);

但是我没有得到任何结果。在进一步的研究中,我看到这是因为我将STRING类型值($ time)与TIME类型值(我的数据库中的值)进行比较。有没有办法可以比较两者而不将我的数据库结构更改为varchar?所有帮助将不胜感激。

4 个答案:

答案 0 :(得分:2)

你错了。
你的错误要简单得多,它与数据格式无关,但与查询格式无关。

问问自己06:00:00的SQL语法是什么意思。

顺便说一下,以这种方式运行查询可以帮助你很多

$ results = mysql_query($ getdetails)或trigger_error(mysql_error()。“in”。$ getdetails);

始终以这种方式运行所有查询并与发生的每个错误取得联系

答案 1 :(得分:2)

MySQL完全能够将字符串与TIME值进行比较。您只需要具有正确的查询语法。在您的情况下,您需要引用比较值:

$time = "06:00:00";

$getdetails = "SELECT First_Name, Last_Name, EMAIL 
FROM parents 
WHERE Email_Receive_Time = '$time'"; 

$results=mysql_query($getdetails);

如果它是用户提供的,那么你应该逃避它。

答案 2 :(得分:1)

在与TIME字段类型进行比较时,这将起作用:

要与DATETIME或TIMESTAMP进行比较,我建议先通过strotime()运行$ time变量。

$time = "06:00:00";

$getdetails = "SELECT First_Name, 
                      Last_Name, 
                      EMAIL 
               FROM   parents 
               WHERE  Email_Receive_Time = '$time'"; 

$results = mysql_query($getdetails);

答案 3 :(得分:0)

尝试使用STR_TO_DATE函数,它应该适合你。

由于 Ravi Mudaliar