在我的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?所有帮助将不胜感激。
答案 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