SELECT * FROM Product where pro_Etime is not NULL AND DATEDIFF(dd,getdate(),convert(datetime(8),pro_Etime)) >=0 AND DATEDIFF(dd,getdate(),convert(datetime(8),pro_Etime)) <=30 pro_Etime为navrchar类型,里面现在都是短日期格式的数据.不过有些为空.字段允许为空.
Microsoft OLE DB Provider for SQL Server 错误 '80040e14' CAST 或 CONVERT: 为类型 'datetime' 指定的特性无效 /month/Remind.asp,行 25 

解决方案 »

  1.   

    convert(datetime(8),pro_Etime,120)
    加上日期转换格式,
      

  2.   

    --datetime(8),pro_Etime)--datetime就行了
    convert(varchar(10),pro_Etime,120)--取天
      

  3.   

    convert(datetime(8),pro_Etime,120)
    加上日期转换格式,
      

  4.   

    SELECT * FROM Product where 
            pro_Etime is not NULL 
            AND DATEDIFF(dd,getdate(),convert(datetime,pro_Etime,120)) >=0 
            AND DATEDIFF(dd,getdate(),convert(datetime,pro_Etime,120)) <=30 
    --or 
    SELECT * FROM Product where 
            pro_Etime is not NULL 
            AND ( DATEDIFF(dd,getdate(),convert(datetime,pro_Etime,120)) BETWEEN 0 AND 30 )