Поэтому я читаю здесь: Почему MySQL не поддерживает точность в миллисекундах / микросекундах? что начиная с версии 5.6.4, формат datetime должен занимать до миллисекунд.
Но это не работает для меня даже на десятые секунды, это не займет. Когда я выполняю свой запрос «INSERT», сохраненное значение выглядит так: «2014-09-15 15:05:54».
Значение, которое я хотел вставить, выглядит следующим образом: «2014-09-15T15: 05: 54.0» Поэтому, когда я делаю сравнение, я получаю ошибки: /
Вот мой INSERT Query:
$bdd->query('INSERT INTO ev
(id_event, ts, sp, lg, dir)
VALUES
(NULL,"'.$evTs.'","'.$ev_sp.'","'.$ev_lg.'","'.$ev_dir.'")');
Где $ evTs — это отметка времени.
Обновление 1
Как я создаю свою таблицу ev:
'CREATE TABLE `ev` (
`id_event` int(32) NOT NULL AUTO_INCREMENT,
`ts` datetime NOT NULL,
`sp` int(32) NOT NULL,
`lg` int(32) NOT NULL,
`dir` int(32) NOT NULL,
`nbr_voie` int(32) NOT NULL,
PRIMARY KEY (`id_event`)
)
Это потому что T
не является частью действительной временной строки mysql. MySQL формат даты / времени всегда был
yyyy-mm-dd hh:mm:ss
и теперь, когда поддерживаются доли секунды
yyyy-mm-dd hh:mm:ss.sssss
Нигде в этом формате нет НИКАКОЙ поддержки T
, Вам придется использовать STR_TO_DATE()
проанализировать ваш «нестандартный» формат во что-то, что MySQL примет. Или даже просто использовать замену строки и сделать REPLACE('yourstring', 'T', ' ')
Других решений пока нет …