示例#1
0
        public void InsertDateTimeOffset()
        {
            m_database.Connection.Execute(@"drop table if exists insert_datetimeoffset;
create table insert_datetimeoffset(rowid integer not null primary key auto_increment, datetimeoffset1 datetime null);");
            var value = new DateTimeOffsetValues {
                datetimeoffset1 = new DateTimeOffset(2017, 1, 2, 3, 4, 5, TimeSpan.FromMinutes(678))
            };

            m_database.Connection.Open();
            try
            {
                using (var cmd = m_database.Connection.CreateCommand())
                {
                    cmd.CommandText = @"insert into insert_datetimeoffset(datetimeoffset1) values(@datetimeoffset1);";
                    cmd.Parameters.Add(new MySqlParameter
                    {
                        ParameterName = "@datetimeoffset1",
                        DbType        = DbType.DateTimeOffset,
                        Value         = value.datetimeoffset1
                    });
                    cmd.ExecuteNonQuery();
                }
            }
            finally
            {
                m_database.Connection.Close();
            }

            var datetime = m_database.Connection.ExecuteScalar <DateTime>(@"select datetimeoffset1 from insert_datetimeoffset order by rowid;");

            DateTime.SpecifyKind(datetime, DateTimeKind.Utc);

            Assert.Equal(value.datetimeoffset1.Value.UtcDateTime, datetime);
        }
示例#2
0
        public void InsertDateTimeOffset()
        {
            m_database.Connection.Execute(@"drop table if exists insert_datetimeoffset;
create table insert_datetimeoffset(rowid integer not null primary key auto_increment, datetimeoffset1 datetime(6) null);");
            var value = new DateTimeOffsetValues {
                datetimeoffset1 = new DateTime(2017, 1, 2, 3, 4, 5, 6)
            };

            m_database.Connection.Open();
            try
            {
                using (var cmd = m_database.Connection.CreateCommand())
                {
                    cmd.CommandText = @"insert into insert_datetimeoffset(datetimeoffset1) values(@datetimeoffset1);";
                    cmd.Parameters.Add(new MySqlParameter
                    {
                        ParameterName = "@datetimeoffset1",
                        DbType        = DbType.DateTimeOffset,
                        Value         = value.datetimeoffset1
                    });
                    cmd.ExecuteNonQuery();
                }
            }
            finally
            {
                m_database.Connection.Close();
            }

            var results = m_database.Connection.Query <DateTimeOffsetValues>(@"select datetimeoffset1 from insert_datetimeoffset order by rowid;").ToList();

            Assert.Equal(1, results.Count);
            Assert.Equal(value.datetimeoffset1, results[0].datetimeoffset1);
        }
示例#3
0
        public void InsertMySqlDateTime()
        {
            m_database.Connection.Execute(@"drop table if exists insert_mysqldatetime;
create table insert_mysqldatetime(rowid integer not null primary key auto_increment, ts timestamp(6) null);");
            var value = new DateTimeOffsetValues {
                datetimeoffset1 = new DateTimeOffset(2017, 1, 2, 3, 4, 5, TimeSpan.FromMinutes(678))
            };

            m_database.Connection.Open();
            try
            {
                using var cmd   = m_database.Connection.CreateCommand();
                cmd.CommandText = @"insert into insert_mysqldatetime(ts) values(@ts);";
                cmd.Parameters.AddWithValue("@ts", new MySqlDateTime(2018, 6, 9, 12, 34, 56, 123456));
                cmd.ExecuteNonQuery();
            }
            finally
            {
                m_database.Connection.Close();
            }

            var datetime = m_database.Connection.ExecuteScalar <DateTime>(@"select ts from insert_mysqldatetime order by rowid;");

            Assert.Equal(new DateTime(2018, 6, 9, 12, 34, 56, 123).AddTicks(4560), datetime);
        }