日期:2014-05-16  浏览次数:20446 次

SQL SERVER查询条件问题
select * from t1 where '2014-05-01'<=getdate()可以查询出所需要的数据,但是当把查询条件改成字段并拼装成字符串形式(如下)就查询不出任何内容是怎么回事?所拼字符串的值也为'2014-05-01'
select * from t1 where CONVERT(varchar(100), cast(substring(f_102,1,4)+'-'+substring(f_102,6,2)+'-01' as datetime), 23) <= getdate()
------解决方案--------------------
那你需要转换成nvarchar类型,否则类型匹配不上
------解决方案--------------------
DECLARE @a NVARCHAR(12) SET @a=N'2014.03'  
SELECT CONVERT(varchar(100),Cast (@a+N'.01' as date),23) ,CONVERT(varchar(100),GETDATE(),23) 
--(无列名) (无列名)
--2014-03-01 2014-05-04