Я пытаюсь прочитать файл в базу данных 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
?
Вы неправильно использовали спецификатор hour
.
Описание спецификаторов:
'%H'
- в часах в диапазоне (00..23)'%h'
- в часах в диапазоне (01..12)'%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)
Документация для чтения: