string strsql = ("select top 4 * from AoSi_Goods join AoSi_GoodsStock on AoSi_Goods.GoodsID=AoSi_GoodsStock.GoodsID order by (AoSi_GoodsStock.HaveBuyNumber)/convert (int, "+DateTime.Now+"-AoSi_Goods.CreateTime)");上面的SQL语句,我在数据库里执行都没问题,为什么一运行就报错啊,说什么在“小时”附近有错误。难道我只能减日期,不能减具体时间吗?但是数据库执行都没问题啊。大侠们,路过的过来帮把手啊~~~

解决方案 »

  1.   

    --年、月、日、时、分、秒
    datediff(yy,date1,date2)
    datediff(m,date1,date2)
    datediff(d,date1,date2)
    datediff(hh,date1,date2)
    datediff(n,date1,date2)
    datediff(s,date1,date2)
    datediff(ms,date1,date2)日期想减 可以使用datediff
    试试看看
      

  2.   

    (DateTime.Now-AoSi_Goods.CreateTime)
    单步看CreateTime数据
      

  3.   

    做日期的加减要这样:#region 返回日期天数
            /// <summary>
            /// 返回日期天数
            /// </summary>
            /// <param name="startDate">开始日期</param>
            /// <param name="enddate">结束日期</param>
            /// <returns></returns>
            public int GetToDays(string startDate, string enddate)
            {
                TimeSpan ts = new TimeSpan();
                DateTime TstartDate = Convert.ToDateTime(startDate);
                DateTime Tenddate = Convert.ToDateTime(enddate);
                ts = Tenddate - TstartDate;
                return ts.Days;
            }
            #endregion
      

  4.   

    createtime的数据是这样的2012-1-2 12:12:12  datetime.now也是这种形式的呀。我把datetime.now换成getdate放进数据库里执行是没问题的