2011-02-10 132 views
0

在我的MySQL数据库中,我将此Time数据类型作为我的一个值:06:00:00。我有以下查询,检查时间作为必须满足的条件之一将字符串数据类型与日期数据类型进行比较PHP MYSQL

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

+1

值得注意的是,这不是SQL和PHP。发布虚拟代码通常是毫无意义的。发布您的* real *代码,您将能够针对* real *问题获得建议。 – 2011-02-10 16:01:49

+0

不需要向繁忙的计算器用户发布很长的php mysql语句。很明显,我通过这个虚拟代码得到了我的观点,因为我有超过1个答案。 – MaxI 2011-02-10 16:32:54

+0

你不能再犯错误了。你可以注意到大部分答案都是错误的。你应该责怪你。 – 2011-02-10 16:33:48

回答

2

MySQL是完全有能力的字符串进行比较,以一个时间值。你只需要有正确的查询语法。在你的情况下,你需要引用比较值:

$time = "06:00:00"; 

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

$results=mysql_query($getdetails); 

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

2

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

问自己在SQL语法方面什么意思06:00:00。

顺便说一句,运行查询这样会帮助你很多

$结果=请求mysql_query($ getdetails)或trigger_error(mysql_error() “中的” $ getdetails。)

始终运行所有的疑问这种方式并尽快与发生的每个错误的

+0

感谢不是勺子喂我的答案 – MaxI 2011-02-10 16:27:59

0

尝试使用STR_TO_DATE功能,它应该为你工作。

由于 拉维Mudaliar

+0

是的,我也试过str_to_date。我做了STR_TO_DATE('$ time','%h:%m:%s'),它工作正常。但我不得不承认netcoder的方式是迄今为止最好的。 – MaxI 2011-02-10 16:24:41

1

与时间类型的字段进行比较时,这将工作:

来比较DATETIME或TIMESTAMP,我建议通过strotime运行$时间变量()第一。

$time = "06:00:00"; 

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

$results = mysql_query($getdetails);