【问题标题】:Pandas unable to read SQL headers - PythonPandas 无法读取 SQL 标头 - Python
【发布时间】:2021-07-08 19:47:17
【问题描述】:

我正在使用 pyodbc 驱动程序并尝试读取 sql server 数据库。生成的数据框有如下所示的空列标题

我已经将一些字段转换为日期/日期时间类型,这些更改似乎在没有相应标题的情况下可见

【问题讨论】:

  • 您可能只使用CAST(foo AS thing) 而不是CAST(foo AS thing) AS column_name
  • 哇,真是个愚蠢的事情。谢谢它的工作。如果您可以将此添加为答案,我会接受它:)

标签: python sql pandas pyodbc


【解决方案1】:

当 SELECT 语句中包含裸列名称时,其名称将自动用于结果集中:

1> SELECT create_date FROM sys.tables WHERE name='team';
2> go
create_date
-----------------------
2021-01-02 11:06:23.763

(1 rows affected)

但是,如果列是表达式的结果,那么大多数数据库引擎不会返回列名……

1> SELECT create_date, CAST(create_date AS date) FROM sys.tables WHERE name='team';
2> go
create_date
----------------------- ----------------
2021-01-02 11:06:23.763       2021-01-02

(1 rows affected)

...除非我们使用 AS 明确提供它:

1> SELECT create_date, CAST(create_date AS date) AS date_only FROM sys.tables WHERE name='team';
2> go
create_date             date_only
----------------------- ----------------
2021-01-02 11:06:23.763       2021-01-02

(1 rows affected)

【讨论】:

    猜你喜欢
    • 2011-07-22
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-19
    • 2021-06-05
    • 2012-08-16
    相关资源
    最近更新 更多