1

我正在将一列带有部分日期的字符串导入 csv 文件。

在导入过程中,有没有办法将格式为“September 23”的字符串转换为 DATETIME 格式,使用部分日期填充月、日和年,并将插入时间作为时间?

编辑:我澄清了这个问题,所以下面的答案不太相关。

4

3 回答 3

1

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

于 2012-10-04T03:56:19.757 回答
0

我认为您可以尝试 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 并产生警告。

请参阅链接和此链接。

于 2012-10-04T04:08:05.897 回答
0

这很丑陋,但它有效。主要问题是创建年份和时间,以及处理月份中各天的单个数值。CONCAT_WS是这种情况下的粘合剂:

STR_TO_DATE(CONCAT_WS(',','September 5',YEAR(NOW()), TIME(NOW())), '%M %e, %Y, %T')

回报:

2012-09-05 11:51:46
于 2012-10-15T15:58:28.527 回答