我的数据库里字段是datetime类型的查询语句如下:       /// <summary>
        /// 执行SQL语句,返回DataSet 
        /// </summary>
        /// <param name="SQL">SQL语句</param>
        /// <returns></returns>
        public DataSet ExecuteSQL_DataSet(string SQL)
        {
            if (m_Connection == null) return null;            DataSet ds = new DataSet();
            OleDbDataAdapter da = new OleDbDataAdapter(SQL, m_Connection);
            try
            {
                if (m_Connection.State == ConnectionState.Open)
                    m_Connection.Close();
                m_Connection.Open();
                da.Fill(ds);
            }
            catch (OleDbException )
            {
                //throw new Exception(oe.ToString());
            }
            finally
            {
                m_Connection.Close();
                //m_Connection.Dispose();
                da.Dispose();
            }            return ds;
        }     
        /// <summary>
        /// 执行SQL语句,返回DataTable
        /// </summary>
        /// <param name="SQL">SQL语句</param>
        /// <returns></returns>
        public DataTable ExecuteSQL_DataTable(string SQL)
        {
            try
            {
                DataSet ds = ExecuteSQL_DataSet(SQL);
                DataTable result = ds.Tables[0];
                return result;
            }
            catch (Exception)
            {
                return null;
            }
            
        }        /// <summary>
        /// 终端图片查询
        /// </summary>
        /// <param name="IpAddress">终端IP</param>
        /// <param name="startTime">起始时间</param>
        /// <param name="endTime">结束时间</param>
        /// <returns></returns>
        public TerminalsImages TerminalsImage_Select(string IpAddress, DateTime startTime, DateTime endTime)
        {
            try
            {
                TerminalsImages TIs = new TerminalsImages();
                string strsql = string.Format("select * from Images where IpAddress in ({0}) and RecTime >= '{1}' and RecTime <= '{2}' order by RecTime", IpAddress, startTime.ToString("yyyy-MM-dd HH:mm:ss"), endTime.ToString("yyyy-MM-dd HH:mm:ss"));
                using (DataTable dt = _db.ExecuteSQL_DataTable(strsql))
                {                    if (dt != null)
                    {
                        foreach (DataRow item in dt.Rows)
                        {
                            TIs.Add(new TerminalsImage(item));
                        }
                    }
                    return TIs;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
在调用的时候,发现其中时间的那一列,有些时间DataTable里的结果比数据库里的少了一秒,有些没有,为什么啊?有什么解决办法?

解决方案 »

  1.   

    SQL server的数据库吗?
    SQL server里边datetime保存方式是YYYY-MM-DD HH-SS-MM:XXX
    会不会是XXX的部分被四舍五入了???
      

  2.   

    额!!!1楼的观点有可能额!!!去search一下吧
      

  3.   

    楼主能不能不用DataTable取值?
    直接SQL语句查询这个时间字段,看返回值是否会少1秒,
    然后在做进一步判断;
      

  4.   

    数据库中类型datetime存储格式应该是2009-8-24 17:32:10.XXX
    你怎么会显示的2009-8-24 17:32:10???