首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas pd.read_sql_query未正确返回日期时间/时间戳(缺少秒数)

Pandas pd.read_sql_query未正确返回日期时间/时间戳(缺少秒数)
EN

Stack Overflow用户
提问于 2020-11-14 00:10:55
回答 3查看 165关注 0票数 0

通过pandas运行以下查询:

代码语言:javascript
复制
conn = sqlanydb.connect( userid='xx', password='xx', eng='xx', commlinks='tcpip{host=xx port=xx}' )
query = '''select top 20 log_ts  from my_table'''
sql_output = pd.read_sql_query(query, conn, parse_dates=['log_ts'])

Log_ts中的结果:2020-08-28 18:08:00

但是,正确的格式(在检查数据库UI时)是2020-08-28 18:08:57.752000

我也尝试过pd.read_sql_query(query, conn, parse_dates={'log_ts': {'format': '%Y-%m-%d %H:%M:%S']),但不能正常工作。

任何提示都将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2020-11-14 00:18:08

您需要MySQL v5.6.4+才能获得分数秒支持。

此外,您不需要使用默认的sqlalchemy datetime类型,您需要用定义的毫秒覆盖MySQL特定的DATETIME类型的参数。

代码语言:javascript
复制
dtype={'date_time': DATETIME(fsp=6) } 
票数 1
EN

Stack Overflow用户

发布于 2020-11-14 01:35:30

有趣的是,当我将它转换为TIME时,它只给出了秒数(虽然没有日期)。但是当我将它转换为DATETIME时,它忽略了秒数。

因此,我可以让原始列(没有second)和另一个列强制转换为TIME,然后在python中合并它们(后处理)。不过,这不是一个有效的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2020-11-14 00:22:34

可能是您的格式缺少毫秒数。下面的内容如何?

代码语言:javascript
复制
import datetime
datetime.datetime.strptime('2020-08-28 18:08:57.752000', '%Y-%m-%d %H:%M:%S.%f' )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64824226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档