Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Postgresql错误:字符串未被识别为有效的日期时间_C#_Postgresql - Fatal编程技术网

C# Postgresql错误:字符串未被识别为有效的日期时间

C# Postgresql错误:字符串未被识别为有效的日期时间,c#,postgresql,C#,Postgresql,当我试图从C从postgresql中检索日期字段时,我遇到了这个错误。就像从表中选择日期字段一样 运行postgesql的系统位于IST时区。我无法编辑数据库或部署它的系统上的任何设置。我可以在代码中做些什么来防止此问题 更新:客户端位于MST timzone上。忘了提那件事了 UPDTATE2:附加代码 DbDataAdapter myAdapter = dbFactory.NewDataAdapter(sSQL, myConnection); if (myConnection.State !

当我试图从C从postgresql中检索日期字段时,我遇到了这个错误。就像从表中选择日期字段一样

运行postgesql的系统位于IST时区。我无法编辑数据库或部署它的系统上的任何设置。我可以在代码中做些什么来防止此问题

更新:客户端位于MST timzone上。忘了提那件事了

UPDTATE2:附加代码

DbDataAdapter myAdapter = dbFactory.NewDataAdapter(sSQL, myConnection);
if (myConnection.State != ConnectionState.Open)
       myConnection.Open();   
ds = new DataSet();
myAdapter.Fill(ds, dataTableName);

尝试将其作为字符串读取,然后在C中将其作为日期进行解析

比如:

看看这是否有效,可能只是格式错误

然而,如果这没有帮助,请您张贴您的代码

谢谢,
Alex.

尝试将其作为字符串读取,然后在C中将其作为日期进行解析

比如:

看看这是否有效,可能只是格式错误

然而,如果这没有帮助,请您张贴您的代码

谢谢,
Alex.

您确定在DbDataAdapter上使用了有效的方言吗?你们工厂退货的是什么类型的?也就是说,myAdapter.GetType返回什么

PostgreSQL处理的min/maxvalues与大多数数据库稍有不同,并且可能返回如下日期:

“-infinity”对应于DateTime.MinValue DateTime.MaxValue的“无穷大” 除非您的适配器处理了这个问题,否则我想您可能会出现类似的错误

我猜您应该使用Npgsql提供程序提供的NpgsqlDataAdapter,但您没有在什么地方提到它

编辑:发现存在一个已知的bug:,但尚未找到该bug影响的版本。它与半小时时区有关,例如+3:30。我想这在2.0.8中也是固定的


2.0.10中也出现了一些timestampTZ修复程序,您确定在DbDataAdapter上使用了有效的方言吗?你们工厂退货的是什么类型的?也就是说,myAdapter.GetType返回什么

PostgreSQL处理的min/maxvalues与大多数数据库稍有不同,并且可能返回如下日期:

“-infinity”对应于DateTime.MinValue DateTime.MaxValue的“无穷大” 除非您的适配器处理了这个问题,否则我想您可能会出现类似的错误

我猜您应该使用Npgsql提供程序提供的NpgsqlDataAdapter,但您没有在什么地方提到它

编辑:发现存在一个已知的bug:,但尚未找到该bug影响的版本。它与半小时时区有关,例如+3:30。我想这在2.0.8中也是固定的


2.0.10中也出现了一些timestampTZ修复。请显示您正在使用的C代码,而不仅仅是SQL。请显示您正在使用的C代码,而不仅仅是SQL。谢谢Alex。我已经发布了我的代码,您可以看到我正在使用通用代码来查询数据库。因此,您的解决方案可能不适合我的问题。嗯,在您的查询中,您可以尝试将datetime格式转换为MST,我不熟悉PostgreSQL,但它应该有一些datetime函数来处理此类问题。谢谢,谢谢亚历克斯。我已经发布了我的代码,您可以看到我正在使用通用代码来查询数据库。因此,您的解决方案可能不适合我的问题。嗯,在您的查询中,您可以尝试将datetime格式转换为MST,我不熟悉PostgreSQL,但它应该有一些datetime函数来处理此类问题。谢谢。Devarts postgresql驱动程序有一个关于DateTime的错误。MaxValue日期存储为10000-01-01而不是9999-12-31,这可能会在使用其他db驱动程序从表中读取时生成异常。是的,我的适配器是NPGSQLDataAdapter。我表中的日期看起来不错。事实上,我将相同的数据移植到一个运行在MST时区的postgresql服务器上,发现一切正常。哪个版本的Npgsql?在2.0.8中,他们修复了一些时区错误,主要是关于负时区,但我猜IST是一个正时区?我的Npgsql版本是2.0.5。您认为升级Npgsql可能会有帮助吗?Devarts postgresql驱动程序在DateTime方面有一个错误。MaxValue日期存储为10000-01-01,而不是9999-12-31,这可能会在使用其他db驱动程序从表中读取时生成异常。是的,我的适配器是NPGSQLDataAdapter。我的表中的日期看起来不错。事实上,我将相同的数据移植到一个运行在MST时区的postgresql服务器上,发现一切正常。哪个版本的Npgsql?在2.0.8中,他们修复了一些时区错误,主要是关于负时区,但我猜IST是一个正时区?我的Npgsql版本是2.0.5。你认为升级Npgsql会有帮助吗?
String date = GetFromDb();
DateTime realDate = DateTime.Parse(date);