通过pandas运行以下查询:
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']),但不能正常工作。
任何提示都将不胜感激。
发布于 2020-11-14 00:18:08
您需要MySQL v5.6.4+才能获得分数秒支持。
此外,您不需要使用默认的sqlalchemy datetime类型,您需要用定义的毫秒覆盖MySQL特定的DATETIME类型的参数。
dtype={'date_time': DATETIME(fsp=6) } 发布于 2020-11-14 01:35:30
有趣的是,当我将它转换为TIME时,它只给出了秒数(虽然没有日期)。但是当我将它转换为DATETIME时,它忽略了秒数。
因此,我可以让原始列(没有second)和另一个列强制转换为TIME,然后在python中合并它们(后处理)。不过,这不是一个有效的解决方案。
发布于 2020-11-14 00:22:34
可能是您的格式缺少毫秒数。下面的内容如何?
import datetime
datetime.datetime.strptime('2020-08-28 18:08:57.752000', '%Y-%m-%d %H:%M:%S.%f' )https://stackoverflow.com/questions/64824226
复制相似问题