select count(*) from table where column between A1 and A2语句 只要A1在表里存在 就永远返回非0吗我以为A2“越界”(在表里不存在)就回返回0啊 前几天是这样的啊 莫非这几日做梦inggggg 我想以 A2为界用sql判断一下啊 求解
哦,那就是这样: select count(*) from table where column between '2014-01-11' and '2014-01-11 23:59:59.000'
把A2弄到前面比较一下呗SELECT CASE WHEN MAX(rjsj) < '2014-01-11 23:59:59.000' THEN 0 ELSE COUNT(*) END FROM rk_day_info WHERE rjsj BETWEEN '2014-01-01 00:00:00.000' AND '2014-01-11 23:59:59.000'
大概这样DECLARE @d DATETIME SET @d='2014-01-10 23:59:59.000' DECLARE @sql VARCHAR(max) SET @sql=' select count(*) from table where column between ''2014-01-11'' and '+CASE WHEN CONVERT(VARCHAR(30),@d,121)>='2014-01-11' THEN '''2014-01-11''' ELSE ''''+CONVERT(VARCHAR(30),@d,121)+'''' END +'' EXEC @sql
像7楼那样,用case when 判断传入的日期是否达到你规定的界限,如果到了,就赋予小于开始时间的(使其返回null),然后用isnull来写死0
假设表里的日期截止到2014-01-09 期望上面sql返回0按照这个,上面的语句确实会返回 2014-01-01-----2014-01-10 直接的记录条数,不太可能返回0 的
只要A1在表里存在 就永远返回非0吗我以为A2“越界”(在表里不存在)就回返回0啊
前几天是这样的啊 莫非这几日做梦inggggg
我想以 A2为界用sql判断一下啊 求解
哦,那就是这样:
select count(*) from table
where column between '2014-01-11' and '2014-01-11 23:59:59.000'
FROM rk_day_info WHERE rjsj BETWEEN '2014-01-01 00:00:00.000' AND '2014-01-11 23:59:59.000'
SET @d='2014-01-10 23:59:59.000'
DECLARE @sql VARCHAR(max)
SET @sql='
select count(*) from table
where column between ''2014-01-11'' and '+CASE WHEN CONVERT(VARCHAR(30),@d,121)>='2014-01-11' THEN '''2014-01-11''' ELSE ''''+CONVERT(VARCHAR(30),@d,121)+'''' END +''
EXEC @sql