我试图将数据从csv文件加载到MYSQL中。csv表中的一列包含与时间相关的数据。该数据存储在标题为Issue_Time的列中,时间值为07:30A和01:35P,其中A和P表示AM和PM。我遇到的问题是,我无法以一种格式将数据加载到MYSQL中,在这种格式中,我可以将AM和PM时间作为TIME数据类型或以24小时格式获取。
我第一次尝试使用TIME数据类型在MYSQL中加载数据。
SET @@SESSION.sql_mode='ALLOW_INVALID_DATES';
当数据加载时,数据被转换为时间格式,时间为07:30:00和01:35:00。问题是AM和PM不再表示。因此,我现在只有00:00:00和12:59:00之间的时间。我试图使用代码将其转换为24Hr格式
UPDATE my_table SET Issue_Time = TIME_FORMAT(Issue_Time, '%H:%i:%s')
但这并不奏效。
我还尝试先将数据作为VARCHAR(255)加载,然后使用
UPDATE my_table SET Issue_Time = STR_TO_DATE(Issue_Time, '%H:%i%p')
这导致加载了一列NULL值。
有人能帮我把数据以24小时的时间格式(如13:35:00)或以一种形式,我将能够告诉时间上午从下午?谢谢。
1条答案
按热度按时间q0qdq0h21#
假设您使用
LOAD DATA INFILE
导入CSV,您可以使用Input Preprocessing通过STR_TO_DATE()格式化传入的时间值。由于时间之后只有A
和P
,我们将使用CONCAT()添加缺失的M
。我们不知道您的文件或表的结构,因此下面是一个示例: