sql >> Database teknologi >  >> RDS >> PostgreSQL

NHibernate Postgresql DateTime til Tidskonvertering

Fandt ud af det!

Tilsyneladende konverteringsarket, jeg linkede til er enten forkert eller forældet. Det viser sig, at et System.TimeSpan-objekt er det, der skal til, for at Npgsql kan lave en ordentlig konvertering til et Postgresql "time"-objekt. Det forekommer mig mærkeligt, at de ville forsøge at konvertere noget, der repræsenterer en forskel mellem to tider, til det, vi tænker på som TT:mm:ss, men sådan er det.

I stedet for at ændre typen af ​​min RunTime-egenskab fra System.DateTime til System.TimeSpan har jeg i stedet oprettet en brugerdefineret IUserType og har tilsidesat NullSafeSet til at se ud

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. NLS_DATE_FORMAT med JDBC

  2. Hvordan last_insert_rowid() virker i SQLite

  3. Array af Enum i Postgres med SQLAlchemy

  4. Autofyld land og by fra postnummer og det modsatte