запрос MySQL между двумя - PullRequest
       7

запрос MySQL между двумя

0 голосов
/ 10 января 2019

Я бы хотел запросить таблицу mySQL для извлечения данных два раза с 10 января, например, с 16:00 до 17:00. Но в моей базе данных я сохранял дату и время в формате strtotime , и я должен делать это в Mysql.

Пожалуйста, помогите. Спасибо!

Изображение базы данных https://pasteboard.co/HVPMdqF.png

Пример кода:

SELECT * FROM table
WHERE loginTime between UNIX_TIMESTAMP('2019-01-10 16:00') AND UNIX_TIMESTAMP('2019-01-10 18:00')

Но запрос не работает.

1 Ответ

0 голосов
/ 11 января 2019

loginTime тип varchar

Вот тут у тебя начинаются проблемы. Вам следует изменить дизайн таблицы, используя правильный тип даты / времени.

Между тем, у вас, по сути, есть два варианта.

  1. Преобразование logintime в метку времени Unix.

    WHERE unix_timestamp(logintime) BETWEEN unix_timestamp('2019-01-10 16:00')
                                            AND unix_timestamp('2019-01-10 17:00')
    
  2. Или сравните строки.

    WHERE logintime BETWEEN '2019-01-10 16:00'
                            AND '2019-01-10 17:00'
    

Оба требуют logintime для правильного хранения только правильно сформированных представлений даты / времени. Для 1. существует несколько форматов, которые unix_timestamp() распознает. Для 2. это должно быть точно YYYY-MM-DD HH24:MI.

...