2011-02-10 135 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);