我有一个表格,其中日期的存储形式为varchar
,格式为DD.MM.YYYY
。需要SQL语句帮助
我创建了一个存储过程,将查询此表并返回基于月和年的结果。
我将有2个输入参数是MM
和YYYY
- 都以字符串形式出现。
什么地方条款将获得所有项目匹配的月份和年份?我怀疑我需要使用LIKE运算符,因为它是varchar
字段。
我的SQL很生锈,谢谢你的帮助。
我有一个表格,其中日期的存储形式为varchar
,格式为DD.MM.YYYY
。需要SQL语句帮助
我创建了一个存储过程,将查询此表并返回基于月和年的结果。
我将有2个输入参数是MM
和YYYY
- 都以字符串形式出现。
什么地方条款将获得所有项目匹配的月份和年份?我怀疑我需要使用LIKE运算符,因为它是varchar
字段。
我的SQL很生锈,谢谢你的帮助。
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)
WHERE field LIKE "%." + @month + "." + @year
然而,最好的方法是创建具有正确数据类型的新列,运行一个脚本来填充新列的正确日期时间值,则沟VARCHAR列,并使用MSSQLs建立在搜索日期时间字段的方式。从长远来看,这将为您提供更快速的查找。
WHERE MONTH(field) = @month
AND YEAR(field) = @year
试试这个(假设@MM和@YYYY是你的输入参数):
SELECT *
FROM <YOUR_TABLE>
WHERE <DATE_COLUMN> LIKE '[0-9][0-9].' + @MM + '.' + @YYYY
SELECT * FROM t1 WHERE RIGHT(datecol,7)= @StringMM + "." + @StringYYYY
什么RDBMS是这个呢? – Jacob
MS SQL Server 2008 R2 –