调用NpgsqlCommand.ExecuteScalar获取DB时间时出错

时间:2010-09-29 14:36:01

标签: postgresql npgsql

我有一个方法,使用以下代码从DB获取DateTime:

NpgsqlCommand cmd = ActiveConnection.CreateCommand(); cmd.CommandText =“SELECT NOW()”;

object obj = cmd.ExecuteScalar(); return(DateTime)obj;

将结果转换为DateTime时,有时会抛出InvalidCastException。有时结果(obj)为null。 知道为什么会这样吗?你对从哪里开始刮擦有什么想法吗?

TIA JoséTavares

1 个答案:

答案 0 :(得分:1)

那是因为postgresql中没有NOW()函数。请改用:

//create NpgsqlCommand instance, cmd
cmd.CommandText = "select current_timestamp";
DateTime dt;
DateTime.TryParse(cmd.ExecuteScalar().ToString(), out dt);
return dt;