为何SELECT CAST('090909' AS datetime) 是正常的,但是如下就错误了: SELECT CAST(a.ctime AS datetime) from table1 a where fpno='00102821' “从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。”ctime也是6位的字符串啊。
select * from TB a where exists (select * from TB b where b.time > a.time and b.time < dateadd(ss,5,a.time))
SELECT * FROM TB WHERE EXISTS (SELECT * FROM TB A WHERE ABS(DATEDIFF(SS,A.TIME,B.TIME))<5)
参照一下这个,对于能用JOIN的联接,尽量少用EXISTS和IN SELECT * FROM TB A INNER JOIN TB B ON A.ID=B.ID AND A.TIME<>B.TIME AND ABS(DATEDIFF(SS,A.TIME,B.TIME))<5
SELECT CAST(a.ctime AS datetime) from table1 a where fpno='00102821'
“从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。”ctime也是6位的字符串啊。
select *
from TB a
where exists (select * from TB b where b.time > a.time and b.time < dateadd(ss,5,a.time))
SELECT * FROM TB A
INNER JOIN TB B
ON A.ID=B.ID
AND A.TIME<>B.TIME
AND ABS(DATEDIFF(SS,A.TIME,B.TIME))<5