sql >> Databasteknik >  >> RDS >> PostgreSQL

NHibernate Postgresql DateTime to Time Conversion

Kom på det!

Tydligen omvandlingsbladet jag länkade till är antingen fel eller inaktuell. Det visar sig att ett System.TimeSpan-objekt är vad som behövs för att Npgsql ska kunna göra en riktig konvertering till ett Postgresql "time"-objekt. Det verkar konstigt för mig att de skulle försöka konvertera något som representerar en skillnad mellan två tider till vad vi tänker på som HH:mm:ss men det är så det är.

Istället för att ändra typen av min RunTime-egenskap från System.DateTime till System.TimeSpan har jag istället skapat en anpassad IUserType och har åsidosatt NullSafeSet för att se ut

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. PHP, text ekar ur databasen utan ny rad, allt i ett stycke

  2. Använda Oracle JDeveloper med MySQL Database Service på Oracle Cloud Platform, del 3

  3. Oracle - Zombiebord

  4. Framtvinga en tidsgräns för fråga i SQL Server