데이터베이스의 레코드를 검색하기 위해 ASP/C#에서 기본 검색을 설계했으며 사용자가 사용할 수있는 필드를 제공했습니다 검색 : 단어/구문, dateFrom, dateTill. 따라서 "Hello, World!", 05/25/2009, 06/25/2009를 입력하면 "Hello, World!"라는 내용의 데이터베이스 레코드가 검색됩니다. 주어진 날짜 사이에 만들어졌습니다. 아주 간단한 물건. 다음과 같은SQL 날짜 결과를 영국 형식 (dd/mm/yyyy)으로 변환하는 방법
필드에 사용자가 입력 한 텍스트가 SQL 문에 직접 주입 :
그래서 여전히SELECT r.idRecord, r.recordText
FROM record r
WHERE LOWER(CAST(r.recordText AS VARCHAR)) LIKE LOWER('%" + word/phrase + "%')
AND r.creationDate BETWEEN '" + dateFrom + "' AND '" + dateTill + "'"
매우 간단하고 사용자가 미국의 형식으로 날짜를 입력하면 그것이 마치 마법처럼 작동합니다, mm/dd/yyyy. 그러나 영국 형식의 날짜가 25/05/2009와 같이 입력되면 실패합니다. 마지막으로 ...
SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS [DD/MM/YYYY]
... 내가 날짜를 선택하지 않기 때문에 특히, 도움이되지 않습니다 유사한 문은 WHERE 절에 사용할 수 있습니까?
도움 주셔서 감사합니다.
참고 사항 : 당신은 매개 변수화 된 SQL을 사용해야합니다. SQL 문을 작성하기 위해 문자열 연결을 결코 사용하지 마십시오. – Heinzi