gpt4 book ai didi

python - SQL Bigint 到 int64 到时间戳产生错误的日​​期

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:31 25 4
gpt4 key购买 nike

我正在编写一个脚本来输出 csv,该脚本需要将 YYYYMMDD 格式的执行时间日期作为文件名的一部分。execution_timestamp 通过 JDBC 拉出并最终出现在我的 DataFrame 中作为 int64。

    import pandas as pd
from dateutil import parser

输入:

    x = pd.DataFrame([1493293503289], columns=['EXECUTION_TIMESTAMP'])
ts= x['EXECUTION_TIMESTAMP']
ts

输出:

    0    1493293503289
Name: EXECUTION_TIMESTAMP, dtype: int64

我编写了以下代码,将其转换为 pandasDataFrame -> 时间戳 -> 解析 YYYYMMDD

输入:

    df=pd.DataFrame(ts) # create pd data frame 
ts_conv = pd.to_datetime(df['EXECUTION_TIMESTAMP'], unit='ns')[0]
parser.parse(str(ts_conv)).strftime('%Y%m%d')

输出:

    '19700101'

但是ts_conv = 时间戳('1970-01-01 00:24:53.293503289')

我知道实际执行时间是'2017-04-27-11.45.03'我将非常感谢任何将其转换为适当日期的建议。

最佳答案

根据 @gseva 设置 unit='ms' 的建议,解析提供了正确的 YYYYMMDD 字符串。单位是纳秒而不是毫秒。

输入:

    ts_conv = pd.to_datetime(df['EXECUTION_TIMESTAMP'], unit='ms')[0]
parser.parse(str(ts_conv)).strftime('%Y%m%d')

输出:

    '20170427'

关于python - SQL Bigint 到 int64 到时间戳产生错误的日​​期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46981872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com