날짜가 많은 데이터베이스가 있습니다. 데이트를 받으면 데이터베이스의 다음 날짜와 데이터베이스의 이전 날짜를 얻고 싶습니다.날짜가 주어지면 데이터베이스에서 다음 날짜와 이전 날짜를 얻는 방법
10/10/09, 10/12/09 및 10/15/09로 데이터 베 이스가 주어지면 누군가 10/13/09 날짜를 입력하면 이전 날짜와 같이 10/12/09를 반환해야합니다. 날짜와 10/15/09를 다음 날짜로 사용하십시오.
어떻게하면됩니까? 감사!
날짜가 많은 데이터베이스가 있습니다. 데이트를 받으면 데이터베이스의 다음 날짜와 데이터베이스의 이전 날짜를 얻고 싶습니다.날짜가 주어지면 데이터베이스에서 다음 날짜와 이전 날짜를 얻는 방법
10/10/09, 10/12/09 및 10/15/09로 데이터 베 이스가 주어지면 누군가 10/13/09 날짜를 입력하면 이전 날짜와 같이 10/12/09를 반환해야합니다. 날짜와 10/15/09를 다음 날짜로 사용하십시오.
어떻게하면됩니까? 감사!
또한 이것을 사용하여 날짜가 아닌 전체 레코드를 쉽게 반환 할 수 있습니다.
-- Get previous date row
SELECT TOP 1 OrderDate, ... FROM Table WHERE OrderDate < @MyDate ORDER BY OrderDate DESC
-- Get Next date row
SELECT TOP 1 OrderDate, ... FROM Table WHERE OrderDate > @MyDate ORDER BY OrderDate
날짜 별 이전 주문은 내림차순으로 오름차순으로 다음 주문으로 내림차순으로 표시됩니다.
은 쉽게 두 개의 쿼리를 사용하여이 작업을 수행 할 수 있습니다 당신이하여 DateField에 대한 인덱스가있는 경우
-- get previous date
SELECT MAX(DateField) WHERE DateField < '2009-10-13';
-- get next date
SELECT MIN(DateField) WHERE DateField > '2009-10-13';
는,이 쿼리도 매우 효율적입니다.
+1 나를 이길. 원하는 경우 해당 날짜와 연관된 다른 필드를 가져올 수 있기 때문에 실제로는 더 좋은 방법입니다. 그렇지 않은 경우에는 성능이 동일합니다. – harpo
질문에 _mysql_라는 태그가 붙어 있습니다.이 태그에는'TOP' 대신'LIMIT'이 필요합니다. –
당신은 오직 한 해 또는 일년과 한 해만 주어진다면 똑같은 일을 할 수 있습니까? – Binarytales