我有一个表,其中的日期以DD.MM.YYYY格式存储为varchar。
我已经创建了一个存储的proc,它将查询这个表,并根据月份和年份返回结果。
我有两个输入参数,分别是MM和YYYY --它们都是字符串。
where子句是什么来获取与月份和年份匹配的所有项目?我怀疑我需要使用LIKE运算符,因为它是一个varchar字段。
我的SQL已经生疏了,谢谢你的帮助。
发布于 2011-07-14 00:30:20
试试这个(假设@MM和@YYYY是您的输入参数):
SELECT *
  FROM <YOUR_TABLE>
 WHERE <DATE_COLUMN> LIKE '[0-9][0-9].' + @MM + '.' + @YYYY发布于 2011-07-14 00:28:12
 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)发布于 2011-07-14 00:29:54
WHERE field LIKE "%." + @month + "." + @year但是,最好的方法是使用正确的数据类型创建一个新列,运行脚本以在新列中填充正确的日期时间值,然后丢弃varchar列并使用以搜索日期时间字段的方式构建的MSSQL。从长远来看,这将为您提供更快的查找速度。
WHERE MONTH(field) = @month
      AND YEAR(field) = @yearhttps://stackoverflow.com/questions/6682209
复制相似问题