Проблема с mysql время разговора

0

Я пытаюсь прочитать файл в базу данных mysql, есть формат столбца времени, подобный этому

05/20/16 01:54:52.797 AM => month/day/year hours:minutes:seconds.millisecond AM/PM

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

Drop table temp;
CREATE TABLE temp LIKE messages;    
load data infile 'C:/xampp/htdocs/gdxg/test_uploads/test.txt' into table temp fields terminated by '\t' enclosed by '"' lines terminated by '\n' (@Time, State, Name,Pri,Value,)
SET Time = STR_TO_DATE(@Time,'%m/%d/%y %H:%i:%s.%f');
select * from temp limit 10;

Он не читает AM/PM

и если бы я попытался это сделать (@Time,'%m/%d/%y %H:%i:%s.%f %p) просто прочитал null?

Теги:
datetime-format

1 ответ

0
Лучший ответ

Вы неправильно использовали спецификатор hour.

Описание спецификаторов:

  1. '%H' - в часах в диапазоне (00..23)
  2. '%h' - в часах в диапазоне (01..12)
  3. '%p' - для AM или PM

Измените H на h в своем запросе, и использование '%p' должно работать.

Пример:

mysql> select @t;
+--------------------------+
| @t                       |
+--------------------------+
| 05/20/16 01:54:52.797 AM |
+--------------------------+
1 row in set (0.00 sec)

mysql> select STR_TO_DATE( @t,'%m/%d/%y %h:%i:%s.%f %p' ) as t;
+----------------------------+
| t                          |
+----------------------------+
| 2016-05-20 01:54:52.797000 |
+----------------------------+
1 row in set (0.00 sec)

Документация для чтения:

  • 0
    Спасибо, ты спас мой день!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню