mysql - 如何修复截断的错误日期时间值 : 'Apr 25, 2017 11:48:45 AM' error during insert?

标签 mysql sql datetime

我的日期格式为:Apr 25, 2017 11:48:45 AM,我已使用 STR_TO_DATE('Apr 25, 2017 11:48:上午 45 点','%b %d,%Y %h:%i:%s')。现在以下是我的表格的形状,其中包含 time 作为格式化日期:

enter image description here

我想将此表插入到另一个表中:

表格:

CREATE TABLE `locations` (
  `uid` int(11) NOT NULL,
  `latitude` varchar(255) DEFAULT NULL,
  `longitude` varchar(255) DEFAULT NULL,
  `time` datetime NOT NULL,
  `created_at` datetime NOT NULL,
  KEY `locations_uid_IDX` (`uid`,`time`) USING BTREE,
  KEY `locations_time_IDX` (`time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8

插入:

INSERT INTO Transformation_Tables.locations

SELECT 
    uid, 
    latitude, 
    longitude, 
    STR_TO_DATE(time, '%b %d, %Y %h:%i:%s') as time,
    STR_TO_DATE(created_at, '%Y-%m-%d %H:%i:%s') as created_at
from creditfix.locations;

在插入期间我遇到此错误:

SQL Error [1292] [22001]: Data truncation: Truncated incorrect datetime value: 'Apr 25, 2017 11:48:45 AM'
  com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect datetime value: 'Apr 25, 2017 11:48:45 AM' . Please help me out.

最佳答案

问题

 STR_TO_DATE(time, '%b %d, %Y %h:%i:%s') as time

解决方案

STR_TO_DATE('2017 年 5 月 12 日下午 3:05:19', '%b %d, %Y %l:%i:%s %p') 时间

'2017-05-12 15:05:19'

关于mysql - 如何修复截断的错误日期时间值 : 'Apr 25, 2017 11:48:45 AM' error during insert?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44300624/

相关文章:

mysql - 如何获取 pgr_dijkstra pgrouting 中节点序列的距离?

java - 我可以让 Hibernate 透明地避免数据库中的字符串重复吗?

mysql - 需要有关 SELECT * FROM 的建议

sql - 转换 yyyy-mm-dd hh :mm:ss to yyyy-mm-dd in sql

php - 验证 mysql 行是否与另一行冲突

php - 使用 PHP、MySql 在仪表板上为当前(登录)用户插入和显示数据

sql - 是否可以使用 SQL 或 PL/SQL 构建此查询?

php - 更改日期中的时间戳

perl - 我如何在Perl中获得本周的日期?

mysql - 优化 Mysql 中的联合查询