You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

源平面文件日期格式求助:6/25/2022 12:57:37.733 PM格式致数据被拒

处理MM/DD/YYYY hh:mm:ss.fff PM格式日期的可行方案

方案1:ETL工具中配置日期解析规则

如果使用Informatica、Talend、DataStage这类ETL工具,直接在字段映射阶段指定对应日期格式字符串:

  • Informatica:在字段高级属性里设置格式为 MM/dd/yyyy hh:mm:ss.fff a
  • Talend:使用tConvertType组件,输入格式设为"MM/dd/yyyy hh:mm:ss.SSS a"
  • DataStage:转换阶段调用StringToDate函数,参数填"%m/%d/%Y %I:%M:%S.%3N %p"

方案2:Python脚本预处理平面文件

用Python读取源文件并转换日期格式,示例代码:

import csv
from datetime import datetime

# 读取源文件并生成处理后的文件
with open('source_file.csv', 'r', encoding='utf-8') as infile, open('processed_file.csv', 'w', newline='', encoding='utf-8') as outfile:
    reader = csv.reader(infile)
    writer = csv.writer(outfile)
    # 写入表头
    writer.writerow(next(reader))
    # 逐行处理数据
    for row in reader:
        # 假设日期在第2列(索引1),根据实际位置调整
        raw_date = row[1]
        # 解析原日期格式
        parsed_date = datetime.strptime(raw_date, '%m/%d/%Y %I:%M:%S.%f %p')
        # 转换为系统兼容的格式(示例为ISO标准格式,可按需调整)
        formatted_date = parsed_date.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
        row[1] = formatted_date
        writer.writerow(row)

方案3:数据库层面转换(导入临时表后处理)

如果先将文件导入临时表再处理,以常见数据库为例:

  • MySQL:
-- tmp_table为临时表,date_str存储原日期字符串
SELECT STR_TO_DATE(date_str, '%m/%d/%Y %h:%i:%s.%f %p') AS standardized_date
FROM tmp_table;
  • SQL Server:
SELECT CAST(date_str AS DATETIME2) AS standardized_date
FROM tmp_table;

方案4:Spark读取时指定格式

如果用Spark处理文件,直接在读取阶段配置日期解析规则:

from pyspark.sql import SparkSession
from pyspark.sql.functions import to_timestamp

spark = SparkSession.builder.appName("DateParse").getOrCreate()
# 读取源文件
df = spark.read.csv("source_file.csv", header=True)
# 转换日期字段
df = df.withColumn("standardized_date", to_timestamp("date_column", "MM/dd/yyyy hh:mm:ss.SSS a"))
# 写出处理后的数据
df.write.csv("processed_file.csv", header=True)

注意:所有方案需根据你的数据处理系统支持的目标格式调整输出规则,核心是确保原格式MM/dd/yyyy hh:mm:ss.fff a能被正确解析(不同工具的格式符号可能略有差异,比如%f对应毫秒、%p对应AM/PM)。

内容的提问来源于stack exchange,提问作者kITTY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 07:10:12