[sql] 특정 날짜와 시간을 가장 가까운 이전 시간으로 조정하는 함수

우선, 다음과 같이 get_previous_time 함수를 작성합니다.

CREATE FUNCTION get_previous_time(@inputDate DATETIME)
RETURNS DATETIME
AS
BEGIN
    DECLARE @previousTime DATETIME;
    
    WITH CTE_PreviousTime AS (
        SELECT TOP 1 TimeColumn
        FROM YourTable
        WHERE TimeColumn < @inputDate
        ORDER BY TimeColumn DESC
    )
    SELECT @previousTime = TimeColumn
    FROM CTE_PreviousTime;
    
    RETURN @previousTime;
END

위의 코드에서 @inputDate는 기준이 되는 특정 날짜와 시간을 나타내며, YourTableTimeColumn은 데이터베이스의 테이블과 시간 컬럼에 대한 것으로 적절하게 변경해야 합니다.

이제 함수를 호출하여 특정 날짜와 시간에 대해 가장 가까운 이전 시간을 얻을 수 있습니다.

SELECT dbo.get_previous_time('2023-11-15 14:30:00') AS PreviousTime;

이렇게 하면 특정 날짜와 시간을 인수로 전달하여 해당 날짜 및 시간 이전의 가장 가까운 시간을 얻을 수 있습니다.

참고 문헌: