需要SQL语句帮助

时间:2011-07-13 16:24:30

标签: sql sql-server-2008-r2

我有一个表格,其中日期存储为varchar,格式为DD.MM.YYYY

我创建了一个存储过程,它将查询此表并根据Month和Year返回结果。

我将有2个输入参数MMYYYY - 两者都以字符串形式出现。

where子句将获得与月份和年份匹配的所有项目的内容是什么?我怀疑我需要使用LIKE运算符,因为它是varchar字段。

感谢您的帮助,我的SQL生疏了。

4 个答案:

答案 0 :(得分:2)

试试这个(假设@MM和@YYYY是你的输入参数):

SELECT *
  FROM <YOUR_TABLE>
 WHERE <DATE_COLUMN> LIKE '[0-9][0-9].' + @MM + '.' + @YYYY

答案 1 :(得分:1)

 Select * from table1 t
    where Month(Cast(t.DateCol as DateTime)) = Cast("1" as bigint)
    AND Year(Cast(t.DateCol as DateTime)) = Cast("2011" as bigint)

答案 2 :(得分:1)

WHERE field LIKE "%." + @month + "." + @year

但是,最好的方法是使用正确的数据类型创建新列,运行脚本以在新列中填充正确的日期时间值,然后抛弃varchar列并使用以搜索日期时间的方式构建的MSSQL领域。从长远来看,这将为您提供更快的查找速度。

WHERE MONTH(field) = @month
      AND YEAR(field) = @year

答案 3 :(得分:0)

SELECT * FROM t1 WHERE RIGHT(datecol,7)= @StringMM + "." + @StringYYYY