나는 내보내기 및 분석을 위해 데이터를 수집하는 SQL을 선택했습니다. 몇 가지 변수에 대해 데이터를 수집하고 쿼리를 실행하려는 날짜 범위를 선언했습니다. 동일한 날짜 범위 변수를 사용하는 총 10 개의 선택 항목이 있습니다. 내가 무엇을하고 싶은지를 쉽게 제외 할 수 있습니다 특정 날짜 (그들은 범위보다는 단일 일) 쿼리에서 제외 목록의 일종을 내가 변수에 선언 할 수 있도록 모든 선택 내 모든 선택을 편집하지 않고 그 특정 날짜를 제거합니다 성명서.SQL 날짜 제외
DECLARE @date_start DATETIME, @date_end DATETIME
SET @date_start = '2011-10-20 00:00:00'
SET @date_end = '2012-05-18 23:59:59'
SELECT
date, col1, col2, col3
FROM
table1
WHERE
date BETWEEN CONVERT(DATETIME, @date_start, 102) AND CONVERT(DATETIME, @date_end, 102)
SELECT
date, col4, col5, col8
FROM
table2
WHERE
date BETWEEN CONVERT(DATETIME, @date_start, 102) AND CONVERT(DATETIME, @date_end, 102)
SELECT
date, col3, col5, col6, col7, col8
FROM
table3
WHERE
date BETWEEN CONVERT(DATETIME, @date_start, 102) AND CONVERT(DATETIME, @date_end, 102)
왜 날짜를 날짜로 '변환'합니까? – Oded
일반적으로 SQL Server에서 날짜 범위를 사용하는 경우'between '대신'> ='및'< '를 사용하는 것이 좋습니다. 이렇게하면보다 합리적인 표현을 사용하고 마지막 두 번째 기간 (예 : '2012-05-18T23 : 59 : 59.003')에 누락 된 항목을 놓치지 않도록 할 수 있습니다. –
그것은 레거시/게으른 것입니다. 사용하고 있던 일부 날짜 열의 데이터 형식은 실제로 데이터베이스에서 datetime이 아니 었습니다. 해결 방법이 있습니다. – user1414459