select @Time_Temp=depart(d,getdate())写错了
应该为select @Time_Temp=datepart(d,getdate())因为@Time_Temp定义为DATETIME,而第二句只返回整数,所以结果不一样.

解决方案 »

  1.   

    另外SQL开始时间为1900年1月1日,相当于整数0
    所以第一句返回的应该是1900年1月1+本月到目前的天数.declare @i datetime
    select @i=datepart(d,getdate())
    select @i
    结果为
    1900-01-24 00:00:00.000(1 row(s) affected)
      

  2.   

    哦,刚才那个datepart是我写错了
    用第一个语句的确的不到当前的时间吧???
      

  3.   

    select datepart(D,getdate()) as time
    本月天数
    24
      

  4.   

    select datepart(D,getdate()) as time
    本月天数
    23
      

  5.   

    select datepart(D,getdate()) as time
    本月天数
    23
      

  6.   

    getdate()取当前日期和时间
    datepart(d,getdate())取当前日期的日数,或几号
    @Time_Temp可能是DATETIME类型@Time_Temp=depart(d,getdate())将当日数转换成DATATIME类型数,其日期为1900-1-1加上当日数第二条只是取当前日期的日数,或几号
      

  7.   

    难道不能取当前日期吗?我的意思是取当前日期付给◎Time_Temp
      

  8.   

    如果是两个字符型的数据的话,用Left('2002-7-23 12:00:00',len('2002-7-23 12:00:00')-9)前面的日期(月份11、12有两位);
    如果是日期型数据,使用convert()函数.
      

  9.   

    如果是字符型数据,使用left('2002-7-23 12:00:00',len('2002-7-23 12:00:00')-9)
    如果是日期型,使用Convert()