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

JD.*_*JD. 0 c# postgresql

我们发送图像,图像的默认区域性设置是 MDY。

安装图像的客户服务器的区域设置为 DMY,它已经使用我们的图像几天了,然后注意到日期的日期样式错误(即,将 DateTime.Now() 插入表中时)。

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

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

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

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

我想到的另一个选择是卸载 postgreSQL,然后使用正确的区域设置再次安装它(只要我备份数据库)。希望这会起作用。

Dam*_*ith 5

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

   INSERT INTO TestTable (code, title,  date)
        VALUES ('aaa', 'bbbb', now);
Run Code Online (Sandbox Code Playgroud)

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

如果要设置日期时间参数,请勿将值设置为字符串。如下所示

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

或者

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