在postgresql表中插入时如何设置DateTime.Now?

时间:2014-02-08 15:01:02

标签: c# postgresql

我们发送图片,图片的默认文化设置为MDY。

安装映像的客户服务器具有DMY的语言环境已使用我们的映像几天,然后注意到日期的日期样式错误(即将DateTime.Now()插入表中时)。

我们已经尝试将postgreSQL语言环境更改为DMY(在postgresql.conf中),但没有运气。

我在考虑将我的C#app中的所有DateTime.Now()调用转换为DMY格式。

我还注意到我可以设置我的web.config,这可能会有所帮助。

由于我无法改变postgreSQL设置,我的选择是什么?

我想的另一个选择是卸载postgreSQL,然后使用正确的语言环境设置再次安装它(只要我备份我的数据库)。希望这会奏效。

1 个答案:

答案 0 :(得分:4)

如果您需要插入当前时间,请将值发送为now

   INSERT INTO TestTable (code, title,  date)
        VALUES ('aaa', 'bbbb', now);

您可以使用其他列的参数,让服务器从数据库端插入当前日期时间值

如果要设置datetime参数,请不要将值设置为字符串。如下所示

string sql  ="INSERT INTO TestTable (dateTimeColumnName) VALUES (:datetimeParamName)";
// create connection cmd etc...
cmd.Parameters.AddWithValue(":datetimeParamName", DateTime.Now);

OR

NpgsqlParameter param = new NpgsqlParameter(":datetimeParamName",NpgsqlTypes.NpgsqlDbType.Date);
param.Value = DateTime.Now;
cmd.Parameters.Add(param);