首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要SQL语句帮助

需要SQL语句帮助
EN

Stack Overflow用户
提问于 2011-07-14 00:24:30
回答 4查看 54关注 0票数 0

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

我已经创建了一个存储的proc,它将查询这个表,并根据月份和年份返回结果。

我有两个输入参数,分别是MMYYYY --它们都是字符串。

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

我的SQL已经生疏了,谢谢你的帮助。

EN

回答 4

Stack Overflow用户

发布于 2011-07-14 00:30:20

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

代码语言:javascript
运行
复制
SELECT *
  FROM <YOUR_TABLE>
 WHERE <DATE_COLUMN> LIKE '[0-9][0-9].' + @MM + '.' + @YYYY
票数 2
EN

Stack Overflow用户

发布于 2011-07-14 00:28:12

代码语言:javascript
运行
复制
 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)
票数 1
EN

Stack Overflow用户

发布于 2011-07-14 00:29:54

代码语言:javascript
运行
复制
WHERE field LIKE "%." + @month + "." + @year

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

代码语言:javascript
运行
复制
WHERE MONTH(field) = @month
      AND YEAR(field) = @year
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6682209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档