使用C#和npgsql查询表,其中日期类型字段不包含日期?

时间:2015-02-18 09:43:58

标签: c# postgresql npgsql

可能是一个非常简单的答案让我有点疯狂。

我正在使用C#和npgsql连接到PostgreSQL数据库。

我正在尝试SELECT或INSERT,其中log_date字段(Type为date)中没有任何日期。它没有设置为允许空值。

我试过了:

var pgCommand = new NpgsqlCommand("SELECT * FROM tableX WHERE log_date = '';", connection);

var pgCommand = new NpgsqlCommand("SELECT * FROM tableX WHERE log_date = \"\";", connection);

var pgCommand = new NpgsqlCommand("SELECT * FROM tableX WHERE log_date = NULL;", connection);

var pgCommand = new NpgsqlCommand("SELECT * FROM tableX WHERE log_date = null;", connection);

var pgCommand = new NpgsqlCommand("SELECT * FROM tableX WHERE log_date = '\"\"';", connection);

如果我执行SELECT并将数据写入控制台,则日期下不显示任何内容,这是正确的,因为log_date字段中没有任何内容。

我怎么检查空日期?

谢谢,

尼尔

1 个答案:

答案 0 :(得分:2)

如果允许null,则可以使用is null,例如log_date is null。如果没有,那么你应该给它一些价值 - 这通常会在数据库级别或应用程序级别(.NET的默认值为01/01/0001 00:00:00)中达到某种默认值。然而,这只是暗示了一个更深层次的设计问题 - 如何在一个不允许没有值的列中“没有价值”?