可能是一个非常简单的答案让我有点疯狂。
我正在使用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字段中没有任何内容。
我怎么检查空日期?
谢谢,
尼尔
答案 0 :(得分:2)
如果允许null
,则可以使用is null
,例如log_date is null
。如果没有,那么你应该给它一些价值 - 这通常会在数据库级别或应用程序级别(.NET的默认值为01/01/0001 00:00:00
)中达到某种默认值。然而,这只是暗示了一个更深层次的设计问题 - 如何在一个不允许没有值的列中“没有价值”?