2012-02-27 100 views
0

請爲我的問題的基本性道歉,但是這讓我瘋狂了一個多小時。我想通過使用簡單的引號而不是double來修改下面的sql語句。我嘗試過並嘗試過,但我無法找到解決方案。非常感謝您的回覆。乾杯。馬克。MySQL簡單/雙引號語法問題

我的代碼:

$result = mysql_query(" 

SELECT * 
FROM sorties 
WHERE srt_date_sortie BETWEEN '$date 00:00:00' AND '$date 23:59:59' 

"); 

回答

1

我不知道你想什麼做的,因爲你的問題不是很清楚,你不給任何預期(就像你嘗試過什麼以及你如何期望工作,而不是實際工作)。

在沒有內容的情況下,我會刺激我想要的東西。

$result = mysql_query(' 

    SELECT * 
    FROM sorties 
    WHERE srt_date_sortie BETWEEN \'' . $date . ' 00:00:00\' AND \'' . $date . ' 23:59:59\' 

'); 
+0

Hello rockfest。謝謝您的幫助。我認爲,我需要將該代碼合併到一個更大,更復雜的以單引號開頭的sql語句中。這就是爲什麼我需要找到一種方式來改變我的陳述。 – Marc 2012-02-27 14:36:51

+0

所以這正是你需要的。 – rockerest 2012-02-27 14:37:38

+0

是的!我只是測試了一下。像魅力一樣工作。再次感謝... – Marc 2012-02-27 14:39:39

1

您可以輕鬆更改您的查詢中

SELECT * 
FROM sorties 
WHERE DATE(srt_date_sortie) = $date 
+0

這不會改變他的引號麻煩;-) – Thorsten 2012-02-27 14:29:16

+0

@Thorsten:我認爲OP可以在查詢的開頭和結尾使用雙引號,而不用在中間插入其他引號。我錯過了什麼嗎? :) – Marco 2012-02-27 14:30:38

+0

你好。對不起,沒有詳細的解釋。我需要使用BETWEEN語句作爲$ date作爲格式的「Y-m-d」,而在我的數據庫中,日期格式是「Y-m-d H:i」。所以DATE(srt_date_sortie)在這種情況下不適合我... – Marc 2012-02-27 14:35:24

1
  1. 我傾向於認爲日期比較有問題的,所以我用TO_DAYS函數來將它們轉換爲整數,其中刪除任何格式設置問題,也問題將日期與日期時間字段進行比較

  2. 對MySQL查詢也使用雙引號,因爲MySQL使用單引號作爲字符串限定符

  3. 雖然PHP可以在字面串聯字符串變量,我寧願顯示可讀性

  4. 的$ date變量需要它周圍的單引號將其標記爲一個日期字符串

串聯

最終查詢:

$result = mysql_query("SELECT * 
FROM sorties 
WHERE TO_DAYS(srt_date_sortie) = TO_DAYS('".$date."')");