SQL: конвертировать из varchar в datetime и сравнивать - PullRequest
2 голосов
/ 27 января 2011

Я получаю сообщение об ошибке при попытке сравнить поле varchar с входными данными пользователя. Проблема в том, что входные данные являются датой, а поле в базе данных - varchar. Я считаю, что мне нужно преобразовать поле БД (и ввод от пользователя?) В datetime, чтобы иметь возможность сравнить его, но я, вероятно, что-то делаю не так: (

Часть sql, которая не работает (часть предложения WHERE):

AND 
    CONVERT(datetime, bdo_report_item_field.content_text, 1) >= CONVERT(datetime, '01/10/2011', 1)

Ошибка: # 1064 - у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с 'bdo_report_item_field.content_text, 1)> = CONVERT (datetime, '01 / 10/2011', 1)) 'в строке 25

Действительно ценю, если кто-то может помочь!

Ответы [ 2 ]

2 голосов
/ 27 января 2011

CONVERT () не принимает три аргумента:

... ни один не позволяет указать формат даты. Более целесообразно использовать STR_TO_DATE ():

Кроме того, тип данных вашего графического интерфейса не имеет значения на уровне MySQL, поскольку запросы SQL всегда являются строками.

2 голосов
/ 27 января 2011

Я не думаю, что CONVERT - это функция, которая вам нужна. Я думаю, вам нужно посмотреть на str_to_date .

Посмотрите на этот вопрос: MySQL конвертировать varchar в дату

...