PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

NHibernate Postgresql DateTime do konwersji czasu

Rozgryzłem to!

Najwyraźniej arkusz konwersji, który połączyłem to jest albo błędne, albo nieaktualne. Okazuje się, że obiekt System.TimeSpan jest potrzebny, aby Npgsql wykonał prawidłową konwersję do obiektu „czasu” Postgresql. Wydaje mi się dziwne, że próbowali przekonwertować coś, co reprezentuje różnicę między dwoma czasami w to, co uważamy za GG:mm:ss, ale tak właśnie jest.

Zamiast zmieniać typ mojej właściwości RunTime z System.DateTime na System.TimeSpan, utworzyłem niestandardowy IUserType i nadpisałem NullSafeSet, aby wyglądał jak

public override void NullSafeSet(IDbCommand cmd, object value, int index)
{
    var obj = (DateTime)value;

    ((IDbDataParameter) cmd.Parameters[index]).Value = new TimeSpan(0, obj.Hour, obj.Minute, obj.Second);
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać czas tworzenia bazy danych w PostgreSQL 9.0?

  2. Jest jakiś sposób, aby *nie* używać przygotowanych instrukcji po stronie serwera w Postgresql?

  3. Obliczanie procentu zagranego ponownie następnego dnia

  4. Humanizowane lub naturalne sortowanie mieszanych ciągów słów i liczb

  5. lokalne połączenie docker postgres pgadmin