pyodbc returns MS Access Double/Single 字段的额外小数位
pyodbc returns extra decimal places for MS Access Double/Single fields
当我使用 pyodbc 从我的访问数据库中获取数据时,它 returns 浮点数、日期或整数的错误格式。
例如:
这些值
像这样返回
我找了很久了,我认为它来自使用的 ODBC 驱动程序,但实际上,我没有任何线索。
另一个例子是我的 MS Access 数据库中日期类型为 DATE 的“21/01/2021”,将作为中文或韩文格式 YYYY-mm-dd 的日期时间返回 H:m:s。
如果 table 中的字段定义使用默认格式,则浮点列(Numeric(Double)
和 Numeric(Single)
)将在 Access UI 中显示所有小数位选项
格式:(空)
小数位数:自动
将这些设置更改为
格式:固定
小数位数:2
将更改 Access UI 中的显示格式,但数字本身仍将以其完整精度存储。 ODBC 驱动程序不关注这些格式化属性,因此它 returns 具有所有可用小数位的值。
至于 Date/Time 值,Access UI 中的 默认格式 是在时间部分正好是午夜时仅显示日期。但是,Date/Time 值与该时间组件 (00:00:00
) 一起存储,并且 ODBC 驱动程序 returns 是完整的值。有关更详细的说明,请参阅 this answer。
当我使用 pyodbc 从我的访问数据库中获取数据时,它 returns 浮点数、日期或整数的错误格式。
例如:
这些值
像这样返回
我找了很久了,我认为它来自使用的 ODBC 驱动程序,但实际上,我没有任何线索。
另一个例子是我的 MS Access 数据库中日期类型为 DATE 的“21/01/2021”,将作为中文或韩文格式 YYYY-mm-dd 的日期时间返回 H:m:s。
如果 table 中的字段定义使用默认格式,则浮点列(Numeric(Double)
和 Numeric(Single)
)将在 Access UI 中显示所有小数位选项
格式:(空)
小数位数:自动
将这些设置更改为
格式:固定
小数位数:2
将更改 Access UI 中的显示格式,但数字本身仍将以其完整精度存储。 ODBC 驱动程序不关注这些格式化属性,因此它 returns 具有所有可用小数位的值。
至于 Date/Time 值,Access UI 中的 默认格式 是在时间部分正好是午夜时仅显示日期。但是,Date/Time 值与该时间组件 (00:00:00
) 一起存储,并且 ODBC 驱动程序 returns 是完整的值。有关更详细的说明,请参阅 this answer。