как выполнить поиск по дате и времени

#php #codeigniter-3

#php #codeigniter-3

Вопрос:

Я работаю с проектом Codeigniter3, где я сохранил данные в виде целого числа, используя следующий формат

 strtotime(date('Y-m-d H:i'))
  

Теперь я хочу извлечь данные из своей базы данных на основе сегодняшней даты, которая не работает.

Я использовал следующий код для извлечения сегодняшней записи

 select * from user where created=strtotime(date('Y-m-d'))
  

Пожалуйста, помогите мне решить эту проблему

Комментарии:

1. используйте меньше и больше, чем как created >= strtotime(date('Y-m-d')."00:00") И created <= strtotime(date('Y-m-d')."23:59")

2. Лучше всего хранить дату и время в соответствующем типе поля. Смотрите: dev.mysql.com/doc/refman/8.0/en/datetime.html

Ответ №1:

Прямо сейчас вы сохраняете временную метку unix — секунды с 1970 года — так что она будет соответствовать только ровно 1 секунде в следующий день.

В идеале вы должны хранить дату в формате, который (мой) sql распознает как формат даты, чтобы вы могли легко запрашивать базу данных.

С меткой времени unix, которая у вас есть сейчас, вам нужно было бы преобразовать ее в формат DateTime и получить из нее часть даты.

В MySQL:

 select * from user where DATE(FROM_UNIXTIME(created)) = DATE(FROM_UNIXTIME(:your_timestamp))
  

Комментарии:

1. jeroen, DATE(FROM_UNIXTIME(создано)) = my sql this в виде строки и возвращает значение 0

Ответ №2:

Попробуйте это-
$this->db->query("SELECT * FROM user WHERE created BETWEEN ".strtotime(date('Y-m-d').'00:00')." AND ".strtotime(date('Y-m-d').'23:59'));

Комментарии:

1. @surma Рад, что это помогло. Пожалуйста, примите ответ. Удачного кодирования.

2. куда нажать, чтобы сделать это ответом

3. @surma ты достаточно умен, чтобы разобраться в этом. 😉