문제

ASP.NET 및 SQL Server 2005로 이슈 추적 응용 프로그램을 작업 중입니다. 문제를 추적하는 동안 마감일을 데이터베이스에서 DATETIME로 저장하고 누군가가 게시판에 메시지를 게시하면 게시 날짜/시간도 얻고 있습니다. db에 dateTime으로 저장됩니다.

이제 제 요구 사항은 문제 마감일을 2 일만 남았을 때 "2 일 남은"것으로 표시해야합니다. 마감일이 이미 끝났을 때와 마찬가지로 Sud Display 일정보다 2 일 뒤에 표시됩니다. 이것은 SQL Server Datediff ()를 사용하여 달성 될 수 있다고 생각하지만 메시지의 경우 2 시간 3 분 전에 게시 한 것처럼 표시해야합니다. 1 일 전에 게시 된 경우 시간을 제거 할 수 있습니다).

Google을 시도했지만 유용한 것을 찾을 수 없었습니다. 일 것이다; 언제나처럼 친절한 도움을 주셔서 감사합니다.

미리 감사드립니다.

도움이 되었습니까?

해결책

다음 쿼리에 변형을 사용하고 필요에 따라 조정하십시오. 다른 RDBMS의 경우 날짜 함수를 적절한 등가물로 바꾸십시오.

SELECT  CASE
          WHEN DateValue-GETDATE() >= 1 THEN CAST(DATEPART(dy, DateValue-GETDATE()) AS varchar) + ' day(s) remaining'
          WHEN DateValue-GETDATE() >= 0 THEN CAST(DATEPART(hh, DateValue-GETDATE()) AS varchar) + ' hour(s) remaining'
          /*Note, it's convenient to switch around for negatives*/
          WHEN GETDATE()-DateValue <= '00:59' THEN CAST(DATEPART(mi, GETDATE()-DateValue) AS varchar) + ' minutes(s) overdue'
          WHEN GETDATE()-DateValue <= 1 THEN CAST(DATEPART(hh, GETDATE()-DateValue) AS varchar) + ' hours(s) overdue'
        ELSE
          CONVERT(varchar, DateValue-GETDATE(), 121)
        END AS Time_Scale

다른 팁

SQL 에서이 작업을 수행하는 대신 .NET를 사용할 수 있습니다. 시간 범위 이 기능을 얻기 위해 구조.

당신은 그것을 얻을 수 있습니다 빼기 한 날짜는 다른 데이트를하고 필요한 시간/초/초 세부 사항을 제공합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top