MySQL простой / двойной синтаксис вопрос - PullRequest
0 голосов
/ 27 февраля 2012

Пожалуйста, извинитесь за основность моего вопроса, но это сводит меня с ума уже больше часа. Я хотел бы изменить приведенный ниже оператор SQL, используя простые кавычки вместо двойных один раз. Я пытался и пытался, но мне не удается найти решение. Заранее большое спасибо за ответы. Приветствия. Марк.

Мой код:

$result = mysql_query("

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

");

Ответы [ 3 ]

1 голос
/ 27 февраля 2012

Вы можете легко изменить свой запрос в

SELECT * 
FROM sorties
WHERE DATE(srt_date_sortie) = $date
1 голос
/ 27 февраля 2012
  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."')");
1 голос
/ 27 февраля 2012

Я не совсем уверен, что вы пытаетесь сделать, так как ваш вопрос не очень ясен, и вы не даете никаких ожиданий (например, то, что вы пытались и как вы ожидали, что это сработает, а не как этона самом деле сработало).

В отсутствие контента я сделаю удар в том, что я думаю, что вы хотите.

$result = mysql_query('

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

');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...