postgresql - -为 NpgsqlParameter Timestamp 字段添加到数据库中的 Infinity;期待 NULL

标签 postgresql null timestamp

我在我的 PostgresSQL 表中插入一条记录,传递 DBNull.Value 作为时间戳,没有时区字段,使用 NpgsqlParameter,如下所示:

ncmd.Parameters.Add(new NpgsqlParameter(":EndDate", NpgsqlDbType.Timestamp));
DateTime? dtval = sr.GetDateTime("EndDate");
ncmd.Parameters["EndDate"].IsNullable = true;
if (dtval.HasValue)
    ncmd.Parameters["EndDate"].Value = dtval;
else
    ncmd.Parameters["EndDate"].Value = DBNull.Value;

当我尝试只选择字段的空值记录时,我使用“Select * From "EVAL"Where "EndDate"IS NULL"但没有返回任何内容。当我在 pgAdmin 中读取表数据时,我在字段中看到值“-infinity”。 拜托,有人可以告诉我如何为 NpgsqlParameter 传递空值吗?

提前致谢

达尼洛达席尔瓦

最佳答案

抱歉,我发现了我的错误。当我从数据读取器读取要插入的数据时,当 DateTime 字段为 null 时,我得到了一个默认值,因此我插入的是 default(DateTime) 而不是 DBNull.Value。现在我正在测试 dtval.HasValue && dtval != default(DateTime) 并且一切正常。谢谢。

关于postgresql - -为 NpgsqlParameter Timestamp 字段添加到数据库中的 Infinity;期待 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31170057/

相关文章:

Mysql AVG忽略零

entity-framework - 使用 EntityFramework 调用带有空参数值的存储过程

Javascript parseFloat 和空值

java - Freemarker 获取当前时间戳

postgresql - Postgres - 更新 pg_catalog.pg_cast 时权限被拒绝

ruby - Sinatra/ActiveRecord 无法处理并发请求?

ruby-on-rails - 为什么 rake db :migrate sometimes add trailing whitespace to structure. sql?

json - 以逗号分隔的列表形式返回 jsonb_array_elements 结果

php - 代码点火器 : Difference Between two time stamps

mysql - 如何将时间戳转换为字符串