Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在将一列带有部分日期的字符串导入 csv 文件。
在导入过程中,有没有办法将格式为“September 23”的字符串转换为 DATETIME 格式,使用部分日期填充月、日和年,并将插入时间作为时间?
编辑:我澄清了这个问题,所以下面的答案不太相关。
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date
我认为您可以尝试 DATE_FORMAT()。
mysql> SELECT STR_TO_DATE('OCT 1, 2013','%M %d,%Y'); // -> '2013-10-01'
STR_TO_DATE - 如果格式字符串包含日期和时间部分,则返回 DATETIME 值;如果字符串仅包含日期或时间部分,则返回 DATE 或 TIME 值。如果从 str 中提取的日期、时间或日期时间值非法,则 STR_TO_DATE() 返回 NULL 并产生警告。
请参阅此链接和此链接。
这很丑陋,但它有效。主要问题是创建年份和时间,以及处理月份中各天的单个数值。CONCAT_WS是这种情况下的粘合剂:
CONCAT_WS
STR_TO_DATE(CONCAT_WS(',','September 5',YEAR(NOW()), TIME(NOW())), '%M %e, %Y, %T')
回报:
2012-09-05 11:51:46