循环的读取纪录作判断好了~~ strdb = "12/10/23"str = "10/12/23"arr = Split(str, "/")If UBound(Split(strdb, "/")) = UBound(arr) Then flag = True For i = 0 To UBound(arr) If InStr(strdb, arr(i)) <= 0 Then flag = False Exit For End If Next End If If flag = True Then Debug.Print strdb
SELECT * FROM yourtable WHERE Len(yourfield) = 8 AND yourfield Like '*10*' AND yourfield Like '*12*' AND yourfield Like '*23*'
网上抄了一个函数你看看,这是sqlserver2000的。 CREATE FUNCTION f_splitSTR( @s varchar(8000), --待分拆的字符串 @split varchar(10) --数据分隔符 )RETURNS @re TABLE(col varchar(100)) AS BEGIN DECLARE @splitlen int SET @splitlen=LEN(@split+'a')-2 WHILE CHARINDEX(@split,@s)>0 BEGIN INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1)) SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'') END INSERT @re VALUES(@s) RETURN END
strdb = "12/10/23" str = "10/12/23" arr = Split(str, "/") If UBound(Split(strdb, "/")) = UBound(arr) Then flag = True For i = 0 To UBound(arr) If InStr(strdb, arr(i)) <= 0 Then flag = False Exit For End If Next End If If flag = True Then Debug.Print strdb
strdb = "12/10/23"str = "10/12/23"arr = Split(str, "/")If UBound(Split(strdb, "/")) = UBound(arr) Then
flag = True
For i = 0 To UBound(arr)
If InStr(strdb, arr(i)) <= 0 Then
flag = False
Exit For
End If
Next
End If
If flag = True Then Debug.Print strdb
CREATE FUNCTION f_splitSTR(
@s varchar(8000), --待分拆的字符串
@split varchar(10) --数据分隔符
)RETURNS @re TABLE(col varchar(100))
AS
BEGIN
DECLARE @splitlen int
SET @splitlen=LEN(@split+'a')-2
WHILE CHARINDEX(@split,@s)>0
BEGIN
INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
END
INSERT @re VALUES(@s)
RETURN
END
flag = True
For i = 0 To UBound(arr)
If InStr(strdb, arr(i)) <= 0 Then
flag = False
Exit For
End If
Next
End If
If flag = True Then Debug.Print strdb