sql >> データベース >  >> RDS >> PostgreSQL

NHibernatePostgresqlDateTimeからTimeへの変換

    理解しました!

    どうやら私はリンク した変換シート toが間違っているか、古くなっています。 System.TimeSpanオブジェクトは、NpgsqlがPostgresqlの「time」オブジェクトに適切に変換するために必要なものであることがわかりました。彼らが2つの時間の違いを表す何かを私たちがHH:mm:ssと考えるものに変換しようとするのは奇妙に思えますが、それはそうです。

    RunTimeプロパティのタイプをSystem.DateTimeからSystem.TimeSpanに変更するのではなく、代わりにカスタムIUserTypeを作成し、NullSafeSetを次のようにオーバーライドしました

    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. 複合主キーと自動インクリメント列ですが、主キーではありません

    2. SQL時間列は昇順でソートされません

    3. JOIN構文でのMySQL相関サブクエリ

    4. 2つのテーブルを比較した後、一致を出力するにはどうすればよいですか?