数据库里面的有张表,其中有借书日期和还书日期两个字段,这两个字段都是日期格式的,第一个问题是,在后台写代码时,定义两个变量,去获得借书时间和还书时间,这两个变量定义成什么类型的?       因为日期格式默认是精确到秒,我要是后台编代码,只取年月日,这样可以把数据插入到表里面吗?第二个问题,定义好类型后,怎么去比较,算出超出的天数。       如果是用“<”来比较的话,不可以是string 类型,datetime类型的,整型可以比较,可是日期怎么能是整呢???高手帮帮忙吧~~~急用~~~

解决方案 »

  1.   

    用“<”来比较的话,数据库可以用string类型吧
      

  2.   


    DateTime begin_dt = DateTime.Now;
            DateTime end_dt = DateTime.Now;
            int days = end_dt.Subtract(begin_dt).Days;//相差天数
            string insert_date = begin_dt.ToShortDateString();//2011-11-31
      

  3.   

    第一个问题:你可以把两个变量定义成date类型 
    第二个问题:date类型直接比较有个函数 是可以比较的
      

  4.   

    第一个问题,都定义成datetime类型
       string nowtime=你在后台得到的年月日  //格式为"yy-mm-dd"
       然后在定义一个datetime _time
            if(DateTime.TryParse(nowtime, out _time))
             {
                //转换成功
             }
    第二个问题用二楼的方法可行
      

  5.   

    timespan
    这个是最简单的了!
      

  6.   

    dv.RowFilter = "日期1<='" + 日期2 + "'";
    dataview也可以
      

  7.   

    SELECT CAST('2011-10-31' AS DATETIME)
    /*
    会自动转换
    2011-10-31 00:00:00.000
    */SELECT DATEDIFF(DAY,'2011-10-31 16:42:31.250','2011-11-11 16:42:31.250')
    /*
    得出相差天数
    11
    */
      

  8.   

    select DATEDIFF('时间1','时间2') from table1 
      

  9.   

    最好在sql里面比较 否则的话会很麻烦的
      

  10.   


    datediff在数据库上就处理了。
      

  11.   


    谢谢你了,但是我的意思是,表里面的字段是日期格式的(精确到了时分秒),但是我只想往表里面插入年月日的日期,后台代码中,我可以取到年月日的日期,那我是不是要在表中把日期格式改成varchar,然后让日期以字符串插入到表中啊。第二个问题用2楼的已经解决了~~~