表:userlist里有列username,表示学生学号(8位数字,前四位是入学年份)
现在要求今年是大四的学生。我写的如下(就是取前四位数与当前时间的年份减去3相比较:
SELECT username
FROM dbo.userlist
WHERE (LEFT(username, 4) = CONVERT(varchar(4), YEAR(GETDATE() - 3)))
但是求不到结果,不知道如何改。

解决方案 »

  1.   

    WHERE (LEFT(username, 4) = CONVERT(varchar(4), YEAR(GETDATE()) - 3))
      

  2.   

    try:
    SELECT username
    FROM dbo.userlist
    WHERE (LEFT(username, 4) = CONVERT(varchar(4), YEAR(GETDATE())- 3))
      

  3.   

    select CONVERT(varchar(4), YEAR(GETDATE() - 3))
    是2005
      

  4.   

    select CONVERT(varchar(4), YEAR(GETDATE()) - 3)
      

  5.   

    SELECT username
    FROM dbo.userlist
    WHERE (LEFT(username, 4) = CONVERT(varchar(4), YEAR(GETDATE()) - 3))
    这样试下
      

  6.   

    这样:
    SELECT username
    FROM dbo.userlist
    WHERE LEFT(username, 4) = Convert( Varchar(4),Year(dateadd(day,-3,getdate() )) )
      

  7.   

    下面两个结果是不一样的
    SELECT YEAR(GETDATE()) - 3   结果2002
    SELECT YEAR(GETDATE() - 3)   结果2005 你只是把日减了3天而已