Я хочу изменить тип даты на th-формат "DMY" в базе данных postgres sql. Я использую библиотеку Npgsql следующим образом:
public void SetDateSytleDB()
{
string sqlConnectionString = "Server=localhost;Port=5432;User Id=test;Password=test;Database=test_db";
sqlCnctn = new NpgsqlConnection(sqlConnectionString);
sqlCnctn.Open();
if (sqlCnctn.State == ConnectionState.Open)
{
String strSetDatestyle = "SET datestyle = 'ISO, DMY'";
using (var cmd = new NpgsqlCommand(strSetDatestyle, sqlCnctn))
{
cmd.ExecuteNonQuery();
}
}
}
к сожалению, тип даты не будет изменен в базе данных впоследствии. Когда я вызываю show datestyle, значение остается в «MDY». В PgAdmin это работает так:
SET datestyle = 'ISO, DMY';
Как мне добиться этого с помощью Npgsql в C #?
SQL Создать операторы для моей таблицы
CREATE TABLE public.t_plate_history (
id integer NOT NULL,
plate integer NOT NULL,
"timestamp" timestamp with time zone NOT NULL,
direction boolean NOT NULL,
"position" integer NOT NULL
);
Метка времени создается в отсортированном списке с помощью команды DateTime.Now.
SortedList<string, object> values = new SortedList<string, object>
{
{TblPlateHistory.FieldDirection, insert},
{TblPlateHistory.FieldPlate, LocalDataSet.Plate.Id},
{TblPlateHistory.FieldPosition, LocalDataSet.PlatePosition.Id},
{TblPlateHistory.FieldTimestamp, DateTime.Now}
};
{TblPlateHistory.FieldTimestamp, DateTime.Now}
Тогда доступ через Npgsql выглядит следующим образом, оператор INSERT, заданный в строке sqlCmd, выглядит следующим образом:
INSERT INTO t_plate_history(plate,timestamp,direction,position) VALUES(1359,'09.02.2018 15:02:08' ,true,705)
И наконец код, где я делаю транзакцию с Npgsql:
public bool RunNonQueryCommand(string sqlCmd, NpgsqlTransaction transAction, NpgsqlConnection connection)
{
NpgsqlCommand sqlCom = new NpgsqlCommand(sqlCmd, connection);
bool rt = true;
try
{
sqlCom.Transaction = transAction;
sqlCom.ExecuteNonQuery();
}
...
return rt;
}