Sql IBM DB2转换为VARCHAR与Python Pandas to_datetime函数
我有电话Sql IBM DB2转换为VARCHAR与Python Pandas to_datetime函数,sql,python-3.x,pandas,parsing,db2,Sql,Python 3.x,Pandas,Parsing,Db2,我有电话 CAST(SURGERY.DTM AS VARCHAR(30)) AS appt_dt 在命中IBM DB2数据库的SQL文件中。由于各种原因,我必须转换为VARCHAR,因此不必选择CAST。问题是,这个演员选择了一个非常糟糕的格式。结果如下:2020-06-09-13.15.00.000000。我们有四位数的年份,包括世纪、月份和月份的日期。到目前为止,一切顺利。但是还有一个非常糟糕的十进制,它以24小时、分钟、秒和微秒分隔。我的目标是将这些日期快速读入Python中的panda
CAST(SURGERY.DTM AS VARCHAR(30)) AS appt_dt
在命中IBM DB2数据库的SQL文件中。由于各种原因,我必须转换为VARCHAR
,因此不必选择CAST
。问题是,这个演员选择了一个非常糟糕的格式。结果如下:2020-06-09-13.15.00.000000
。我们有四位数的年份,包括世纪、月份和月份的日期。到目前为止,一切顺利。但是还有一个非常糟糕的十进制,它以24小时、分钟、秒和微秒分隔。我的目标是将这些日期快速读入Python中的pandas数据帧,我无法让pandas解析这种日期,大概是因为它抓取了13.15
一小时,00.000000
一分钟,然后几秒钟就什么都没有了。它出错了。我对解析器的尝试如下所示:
parser_ibm_db(date_str: str) -> pd.tslib.Timestamp:
return pd.to_datetime(date_str, format='$Y-%m-%d-%H.%M.%S')
但它不起作用。选项也不能推断出日期时间格式
,或者根本没有
所以我的问题是:有没有一种方法可以控制
CAST的格式设置
功能更好,还是有办法读取
结果变成熊猫了吗?我对这两种方法都非常满意
我对第二种方法的一个想法是,以某种方式限制%H
和%M
选项只查看2个字符,但我不知道如何执行,文档也没有告诉我如何执行
蛮力方法是读取中的csv数据,搜索这些类型的字符串,并用冒号替换前两个句点。日期分析器对此不会有问题。但这将涉及一个额外的处理步骤,我宁愿避免
谢谢你的时间 更改格式字符串:
dt_string = '2020-06-09-13.15.00.000000'
pd.to_datetime(dt_string, format='%Y-%m-%d-%H.%M.%S.%f')
正确转换字符串:
Timestamp('2020-06-09 13:15:00')
更改格式字符串:
dt_string = '2020-06-09-13.15.00.000000'
pd.to_datetime(dt_string, format='%Y-%m-%d-%H.%M.%S.%f')
正确转换字符串:
Timestamp('2020-06-09 13:15:00')
也许你需要在strftime中使用
%f
?也许你需要在strftime中使用%f
?你是对的!我想我已经试过了,但没有成功,但我一定做了一些与此不同的事情。非常感谢!你说得对!我想我已经试过了,但没有成功,但我一定做了一些与此不同的事情。非常感谢!