在记事本中将特定日期格式化为所需格式

时间:2018-11-19 20:00:06

标签: mysql sql regex datetime notepad++

大家好,

我在具有以下日期格式的csv文件中设置了一个数据集:

Tue Jun 16 18:01:56 BST 2009
Thu Aug 20 09:40:51 BST 2015

我正在使用一个MySQL数据库,该数据库需要将数据上传到 DATETIME 列,因此所需的格式如下所示。时区缩写需要完全删除,我可以使用查找/替换以及日期缩写来做到这一点。因此,仅需要将月份缩写词转换为数字,并将年份置于开头:

YYYY-MM-DD HH:MM:SS

我知道我可以使用CTRL + F查找和替换NP ++中的特定值。但是,您可能已经猜到文件中的日期组合可能不同。我已经研究过可以用正则表达式来完成它,但是我一点都不熟悉。是否有任何专家用户可以建议我如何编写必要的表达式以格式化和替换日期?预先谢谢你。

1 个答案:

答案 0 :(得分:0)

您可以按原样将数据导入临时的varchar列中,然后使用STR_TO_DATE将其转换为日期时间:

UPDATE yourdata
SET actual_datetime = STR_TO_DATE(
    CONCAT(SUBSTRING(temp_datetime, 5, 16), SUBSTRING(temp_datetime, 25, 4)),
    '%b %d %H:%i:%s %Y'
)

Tests for STR_TO_DATE function