Ors*_*son 3 sql t-sql sql-server sql-server-2008
我需要编写一个存储过程来允许某人搜索数据库.但是,我得到的只是一个月和一年的整数.db有月份和年份字段.但我无法弄清楚如何设置比较.
例如:我得到2008年3月和2010年6月.
我需要在数据库中搜索记录,其中日期(由月份和年份字段指定)介于两个日期之间.
编辑
给定两个Date输入,如何找到这些日期之间的所有记录?每条记录只有表示年份和月份的整数.
小智 5
以前的解决方案应该可行,但遗憾的是它们阻止在年和月列上使用索引.
你将不得不用艰难的方式来解决它:
SELECT *
FROM records
WHERE Year > @StartYear
OR ( Year = @StartYear
AND Month >= @StartMonth)
/*(ommited end date check, it is same)*/
Run Code Online (Sandbox Code Playgroud)
另一种可能性是将计算日期列添加到源表
以这种方式存储日期是可疑的,并且从DB设计的角度来看可能是不正确的.考虑将日期存储在日期列中(如果确实需要),添加年和月的计算列.