where year(time)=2001 and month(time)=10

解决方案 »

  1.   

    还可以使用其它时间函数:
    如datediff:
    select * from sample where datediff(year,hire_date,getdatye())>15
      

  2.   

    不行啊,在SQL query和C#中用,都报:System.Data.OleDb.OleDbException: 'year' is not a recognized built-in function name
    也就是说,它不是经验证的内建方法。
      

  3.   

    SQL server 中这些是 都是有的,不知道你是用的是什么。通用一点的方法是用
    WHERE (ord_date >= '2002-10-1') AND (ord_date < '2002-11-1')
      

  4.   

    to: TheAres(班门斧) 
       datediff能用,year(time)会报上述错误,准备试一下你的方法。另外,上面说的都是对时间操作的方法,能否对字符串也进行这些操作呢?
      

  5.   

    如果time确实是你数据库中的字段,要这样用WHERE (YEAR([time]) = 2002).这些都是集成的SQL 函数,不可以用来操作字符串字段。
      

  6.   

    忘了一句,tafu(大福)的方法是最好的方法,因为编程实现方便。
      

  7.   

    我也觉得如果能用year(time)的方法是最方便的,但我按班门兄的方法试了一下,的确不行,还是报同样的错误。我用的是SQL SERVER 6.5。
    另外,哪儿有SQL函数介绍的资源啊,各位如知道的烦请共享一下如何。
      

  8.   

    恐怕帮不上太多忙了,我已经没有6.5的资料了。不过你可以用SQL query中的帮助,看看有没有这个函数。
    Good Luck