22,209
社区成员
发帖
与我相关
我的任务
分享
select a.*
from kehu a
where isdate(a.到期日)=1 and datediff(day,首建日期,到期日)<0
单独运行这个指令,我这里没有提示出错,mssql2008select a.*
from kehu a
cross apply (select 1 as tmpfield where isdate(a.到期日)=1 and datediff(day,首建日期,到期日)<0) b
--where isdate(a.到期日)=1 and datediff(day,首建日期,到期日)<0
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t(
dq NVARCHAR(20),
sj DATETIME
)
SET NOCOUNT ON;
INSERT INTO t VALUES ( '20180512','20180513' )
INSERT INTO t VALUES ( N'长期','20180513' )
INSERT INTO t VALUES ( '99990605','20180513' )
GO
--错误
SET STATISTICS PROFILE ON
SELECT dq,sj FROM t a
WHERE
1=1
--AND ISNUMERIC(a.dq)=1
AND isdate(a.dq)=1 and datediff(day,sj,dq)<0
--正确
select dq,sj from t a
where isdate(a.dq)=1
and a.dq<>'长期'
and datediff(day,sj,dq)<0