public void Can_override_SqlServer_Time_Converter()
        {
            using (var db = OpenDbConnection())
            {
                var hold = DialectProvider.GetConverter <TimeSpan>();
                DialectProvider.RegisterConverter <TimeSpan>(
                    new SqlServerTimeConverter());

                db.DropAndCreateTable <PocoWithTime>();

                var sql = db.GetLastSql();
                Assert.That(sql, Does.Contain("\"TimeSpan\" TIME NOT NULL"));
                sql.Print();

                //SQL Server can't do < 1 day and only 3ms precision
                var oneTime = new TimeSpan(0, 1, 1, 1, 3);

                db.Insert(new PocoWithTime {
                    TimeSpan = oneTime
                });

                Assert.That(db.Single <PocoWithTime>(x => x.TimeSpan == oneTime).TimeSpan,
                            Is.EqualTo(oneTime).Within(TimeSpan.FromSeconds(1)));

                sql = db.GetLastSql();
                sql.Print();

                Assert.That(sql, Does.Contain("\"TimeSpan\" = '01:01:01.0030000'").
                            Or.Contain("\"TimeSpan\" = CAST(@0 AS TIME))"));

                DialectProvider.RegisterConverter <TimeSpan>(hold);
            }
        }