Код: Выделить всё
{..., "time_created":"2024-05-15T11:14:23.384266+00:00",...}.
Код: Выделить всё
{..., "time_created":"2024-05-15T09:14:23.384266+02:00",...}
Что заставляет ExecuteScalar выполнять преобразование, даже если из функции возвращается текст?Если функция возвращает таблицу, содержащую метку времени, значения возвращаются правильно, а сериализация создает значения в форме, например: "time_created":"2024-05-15T11:14:23.384266Z", который можно нормально отобразить при вводе Quasar.
Есть ли способ заставить все, что конвертирует json, строки при чтении с помощью ExecuteScalar, чтобы сделать это с помощью ...Z?
Функция
Код: Выделить всё
create function data_survey_r("Key" integer) returns text language plpgsql as $$
BEGIN
RETURN (SELECT ROW_TO_JSON(t)::text FROM data.survey t WHERE t.id = "Key");
END $$;
Код: Выделить всё
create function data_survey_r("Key" integer) returns json language plpgsql as $$
BEGIN
RETURN (SELECT ROW_TO_JSON(t) FROM data.survey t WHERE t.id = "Key");
END $$;
Код: Выделить всё
ret = (string) await connection.ExecuteScalarAsync("data_survey_r", new { Key = key }, commandType: CommandType.StoredProcedure);
Код: Выделить всё
create function test_now () returns json as $$
BEGIN
return (SELECT json_build_object('now', now()));
END $$
language plpgsql
Код: Выделить всё
NpgsqlConnection con = new NpgsqlConnection(_options.ConnectionString);
con.Open();
var ret = await con.ExecuteScalarAsync("test_now");
в консоль, {"сейчас" : "2024-06-22T14:53:40.079963+02:00"
Подробнее здесь: https://stackoverflow.com/questions/786 ... l-and-json
Мобильная версия