mysql时间转换问题

时间:2018-01-02 10:31:23

标签: mysql datetime-format

我正在尝试将文件读取到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

1 个答案:

答案 0 :(得分:0)

您错误地使用了hour说明符。

说明符说明

  1. '%H' - 范围内的小时数(00..23)
  2. '%h' - 范围内的小时数(01..12)
  3. '%p' - AM或PM
  4. 在您的查询中将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)
    

    阅读文档