Подтвердить что ты не робот

Сравнение дат в MySQL

Я хочу сравнить дату из базы данных, которая находится между двумя заданными датами. Столбец из базы данных DATETIME, и я хочу сравнить его только с форматом даты, а не с форматом datetime.

SELECT * FROM `players` WHERE CONVERT(CHAR(10),us_reg_date,120) >= '2000-07-05' AND CONVERT(CHAR(10),us_reg_date,120) <= '2011-11-10'

Я получаю эту ошибку при выполнении SQL выше:

У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL для правильный синтаксис для использования рядом 'us_reg_date, 120) > =' 2000-07-05 'AND CONVERT (CHAR (10), us_reg_date, 120) <= '2011-' в строке 1

Как можно устранить эту проблему?

4b9b3361

Ответ 1

Вы можете попробовать выполнить запрос ниже,

select * from players
where 
    us_reg_date between '2000-07-05'
and
    DATE_ADD('2011-11-10',INTERVAL 1 DAY)

Ответ 2

Это синтаксис SQL Server для преобразования даты в строку. В MySQL вы можете использовать функцию DATE для извлечения даты из даты и времени:

SELECT *
FROM players
WHERE DATE(us_reg_date) BETWEEN '2000-07-05' AND '2011-11-10'

Но если вы хотите воспользоваться индексом в столбце us_reg_date, вы можете попробовать это вместо:

SELECT *
FROM players
WHERE us_reg_date >= '2000-07-05'
  AND us_reg_date < '2011-11-10' + interval 1 day

Ответ 3

Это работает для меня:

select date_format(date(starttime),'%Y-%m-%d') from data
where date(starttime) >= date '2012-11-02';

Обратите внимание на строку формата "% Y-% m-% d" и формат даты ввода.

Ответ 4

Привет, ребята, спасибо за вашу помощь, я получил ответ.

вот код.......

SELECT * FROM table
WHERE STR_TO_DATE(column, '%d/%m/%Y')
  BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y')
    AND STR_TO_DATE('07/10/15', '%d/%m/%Y')

Ответ 5

вот что это сработало для меня:

select * from table
where column
BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y')
 AND STR_TO_DATE('07/10/15', '%d/%m/%Y')

Обратите внимание, что мне пришлось изменить STR_TO_DATE (столбец "% d/% m/% Y" ) из предыдущих решений, так как потребовалось время для загрузки