Как получить только дату из даты и времени в CodeIgniter? - PullRequest
2 голосов
/ 18 декабря 2011

У меня есть данные в таблице MySQL, например:

ID     dates                   value
1    2011-12-18 10:11:12      test1
2    2011-12-18 12:11:12      test2
3    2011-11-18 10:19:11      test3

Когда я пытался получить значение в модуле, оно не работает, я пишу код как:

$query=$this->db->get_where('datas', array('dates' => date('Y-m-d')));

Мне нужно получитьданные за весь день, как получить данные только с 2011-12-18.

Спасибо

Ответы [ 3 ]

1 голос
/ 18 декабря 2011

попробуйте с $this->db->like();

, чтобы оно было

$query=$this->db->like('dates', array('dates' => date('Y-m-d')));

. % будет добавлено автоматически

также у вас есть данные в качестве ключабыть даты на основе структуры базы данных

0 голосов
/ 19 сентября 2018

Попробуйте:

$date="2018-09-19";
$this->db->select('*');
$this->db->from('tbl_name');
$this->db->where('DATE(date_time_col)', $date);
$query = $this->db->get();
$res= $query->result();
0 голосов
/ 18 декабря 2011

Вы можете сделать следующее:

В своей таблице создать int поле с именем ts .

При вставке данныхв эту таблицу используйте метод time () , чтобы вставить метку времени в ts .

$data = array(
   'dates' => '<your date value>' ,
   'value' => '<your value>' ,
   'ts'    => time()
);

$this->db->insert('datas', $data); 

Затем при запросе:

Используйте метод mktime (), чтобы создать диапазон меток времени для начала и конца сегодняшнего дня.

$start = mktime() - date('h')*3600;    
$end   = mktime(); 

$this->db->where('ts >=', $start);
$this->db->where('ts <=', $end);

Убедитесь, что вы проиндексировали столбец ts.Это также будет быстрее, чем описанный выше метод LIKE для больших наборов данных.

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