Mysql日期格式转换
我想将日期从[Mysql日期格式转换,mysql,sql,string,date,squid,Mysql,Sql,String,Date,Squid,我想将日期从[09/Jul/2014:16:12:58+0530]分为子字符串,并将其输入日期类型字段。 我的完整查询如下 insert into SquidLog (LocalIP,AccessDateTime,Url,HttpAccessCode,BytesAccessed,DestinationIP, SquidErrorCode,SquidTimeStamp,AccessDate,AccessTime) select LocalIP, AccessDateTi
09/Jul/2014:16:12:58+0530
]分为子字符串,并将其输入日期类型字段。
我的完整查询如下
insert into SquidLog
(LocalIP,AccessDateTime,Url,HttpAccessCode,BytesAccessed,DestinationIP,
SquidErrorCode,SquidTimeStamp,AccessDate,AccessTime) select LocalIP,
AccessDateTime,Url,HttpAccessCode,BytesAccessed,DestinationIP,
SquidErrorCode,SquidTimeStamp,
DATE_FORMAT(replace(SUBSTR(AccessDateTime,2,11),"/","-"),'%Y-%b-%d'),
SUBSTR(AccessDateTime,14,8) from SquidLogTemp;
这是怎么可能的。试试这个:
insert into SquidLog
(LocalIP,AccessDateTime,Url,HttpAccessCode,BytesAccessed,DestinationIP,
SquidErrorCode,SquidTimeStamp,AccessDate,AccessTime) select LocalIP,
AccessDateTime,Url,HttpAccessCode,BytesAccessed,DestinationIP,
SquidErrorCode,SquidTimeStamp,
STR_TO_DATE(replace(SUBSTR(AccessDateTime,2,11),"/","-"),'%Y-%b-%d'),
SUBSTR(AccessDateTime,14,8) from SquidLogTemp;
插入到日志中
(LocalIP、AccessDateTime、Url、HttpAccessCode、BytesAccessed、DestinationIP、,
SquidErrorCode、SquidTimeStamp、AccessDate、AccessTime)选择LocalIP,
AccessDateTime、Url、HttpAccessCode、BytesAccessed、DestinationIP、,
SquidErrorCode,SquidTimeStamp,
STR_TO_DATE(替换(SUBSTR(AccessDateTime,2,11)、“/”、“-”、%Y-%b-%d)),
SquidLogTemp中的SUBSTR(AccessDateTime,14,8);
日期格式(str-to-date(SUBSTR(AccessDateTime,2,11),“%d/%b/%Y”),“%Y-%b-%d”)
您的代码建议您接受多种格式的输入,是真的吗?日期必须放在不同的字段中,时间必须放在不同的字段中。好的,没关系……“日期必须放在不同的字段中,时间必须放在不同的字段中”有什么特别的原因吗?这可能是一个麻烦。年和小时之间真的有冒号吗?看起来你的字段不是日期时间类型。使用STR_TO_DATE转换成字符串,然后解析你不喜欢的子字符串:我添加了一个新字段并在那里插入日期。我将使用str_to_date()函数从中选择它。
CREATE TABLE SquidLogTemp
(`AccessDateTime` varchar(26))
;
INSERT INTO SquidLogTemp
(`AccessDateTime`)
VALUES
('09/Jul/2014:16:12:58 +0530')
;
**Query 1**:
select
date_format(str_to_date(AccessDateTime,'%d/%b/%Y'),'%Y-%b-%d')
, substring(AccessDateTime,13,8)
, str_to_date(substring(AccessDateTime,13,8),'%H:%i:%s')
from SquidLogTemp
**[Results][2]**:
| DATE_FORMAT(STR_TO_DATE(ACCESSDATETIME,'%D/%B/%Y'),'%Y-%B-%D') | SUBSTRING(ACCESSDATETIME,13,8) | STR_TO_DATE(SUBSTRING(ACCESSDATETIME,13,8),'%H:%I:%S') |
|----------------------------------------------------------------|--------------------------------|--------------------------------------------------------|
| 2014-Jul-09 | 16:12:58 | January, 01 1970 16:12:58+0000 |