【问题标题】:formatting specific date to required format in notepad++在记事本++中将特定日期格式化为所需格式
【发布时间】:2018-11-19 20:00:06
【问题描述】:

大家好,

我有一个 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++ 中的特定值。但正如您可能已经猜到的那样,文件中的日期组合可能会有所不同。我研究过它可以用正则表达式来完成,但我一点也不熟悉。是否有任何专家用户可以建议我如何编写必要的表达式来格式化和替换我的日期?提前谢谢你。

【问题讨论】:

  • MySQL 的LOAD DATA INFILE。有办法使用 MySQL 用户变量解析 CVS 文件和其中的数据。这样的东西应该可以工作LOAD DATA INFILE .... (<columns> @datetime) SET <columns>, @datetime = STR_TO_DATE(..., LEFT(...))

标签: mysql sql regex datetime notepad++


【解决方案1】:

您可以按原样将数据导入到临时的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    相关资源
    最近更新 更多