我编写了一个基本脚本,将PostgreSQL数据库中的数据同步到另一个系统,该系统在我的测试/开发环境中执行,没有问题,使用:
在实时制作环境中运行脚本后,我们遇到以下错误:
“不支持时间戳的旧浮点表示”
研究这个问题,我发现这与PostgreSQL的一个“弃用的编译时选项”有关,后者切换到某些日期/时间字段的浮点表示.Npgsql(当前)不支持这种模式。“
Here is a link to the relevant source code
在生产中,PostgreSQL服务器运行的是8.3版,由于内部原因,服务器管理器此时拒绝升级PostgreSQL服务器。 (当前的Npgsql版本在版本9. doh之前没有正式支持PosgreSQL!)
问题(S):
答案 0 :(得分:0)
根据这里的一个主题:
http://grokbase.com/t/postgresql/pgsql-general/103f2g9gsr/integer-datetime-8-2-8-4-differences
我注意到这可能对您有所帮助:
&#34下列出的第一项;观察以下不兼容性" 在8.4发行说明中是
默认情况下使用64位整数日期时间(Neil Conway)
以前这是由configure'选择的 --enable-integer-datetimes选项。要保留旧行为,请使用--disable-integer-datetimes构建。
也许这有助于弄清楚如何禁用/启用整数日期。
你在使用什么版本的Postgre-SQL?
答案 1 :(得分:0)
我不是百分之百确定这一点,但是Npgsql 2.2.7应该能够与PostgreSQL传统浮点格式一起正常工作,因为它使用文本传输来读写非二进制值。这应该允许您与旧数据库进行交互。
然而,严重劝阻继续以任何方式使用PostgreSQL 8.3 - 8.3在2013年2月达到其生命周期结束时...您应该尝试通过转储数据并将其恢复到新的数据来迁移到9.4环境,它可能会很好。
另请注意,虽然新版本(如3.0.4)通常可以在9.0之前的PostgreSQL上运行 - 但它只是因为它们没有以任何方式进行测试,我们可能无法修复任何非平凡的错误。跑过去。
答案 2 :(得分:0)
Npgsql,ASP.NET Core 2.2:System.NotSupportedException:不建议使用 Npgsql不支持浮点日期/时间格式。
大家好!我在使用asp.net core 2.2时遇到了这个问题。就我而言,我降级到Npgsql版本4.0.7,这解决了我的问题。