Plu*_*mer 3 mysql sql time load-data-infile
我有一个TSV,我试图渗透到mySQL表中.几列是时间格式,但它们与标准时间格式不匹配HH:MM:SS,相反它们看起来像HH:MM AM/PM
我已经看过用PHP做这个的例子,但我希望有一个方法可以用mysql做 str_to_date
这是我到目前为止所做的工作.
LOAD DATA LOCAL INFILE
'C:\\SINGLE_PROP\\open_houses.txt'
REPLACE INTO TABLE singleprop.jos_openhouse
IGNORE 1 LINES
SET OHSSTARTTM = STR_TO_DATE('%g:%i %a', '%g:%i:%s');
Run Code Online (Sandbox Code Playgroud)
我一直收到错误的时间格式错误.这是表格的样子.
CREATE TABLE `jos_openhouse` (
`OHSSTARTDT` DATE NOT NULL,
`OHSHOSTBID` varchar(14) NOT NULL,
`OHSMLSNO` int(7) NOT NULL,
`OHSSTARTTM` TIME NOT NULL,
`OHSENDTM'` TIME NOT NULL,
`OHSREMARK` TEXT,
`OHSTYPE` TEXT,
`OHSUPDTDT` TIMESTAMP,
PRIMARY KEY (`OHSMLSNO`))
ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
是否应该首先将列创建为"TEXT",这样infile可以将数据放在那里,然后在导入后将其转换为时间格式?
Sah*_*hah 14
试试这个:
SELECT STR_TO_DATE('11:15 PM', '%h:%i %p') ;
Run Code Online (Sandbox Code Playgroud)
OUTPUT
TIME
--------
23:15:00
Run Code Online (Sandbox Code Playgroud)
试试这个:
LOAD DATA LOCAL INFILE
'C:\\SINGLE_PROP\\open_houses.txt'
REPLACE INTO TABLE singleprop.jos_openhouse (col1, col2, ..., @OHSSTARTTM)
IGNORE 1 LINES
SET OHSSTARTTM = STR_TO_DATE(@OHSSTARTTM, '%h:%i %p');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24961 次 |
| 最近记录: |