당신은 DATEPART를 사용할 수 있습니다
은 지정된 날짜의 지정된 datepart를 나타내는 정수를 반환합니다. DATEADD과 결합
:
가 지정된 간격 (부호있는 정수)로 지정된 날짜를 반환은 해당 날짜의 지정된 날짜 부분에 추가됩니다.
예 :이 00:00:00
시간을 설정하기 위해 다시 datetime
하는 시간 부분을 제거하기 위해, date
의 값 캐스트
DECLARE @val AS DATETIME = '1899-12-30 01:30:00.000';
SELECT @val; -- 1899-12-30 01:30:00.000
SET @val = DATEADD(SECOND, DATEPART(MINUTE, @val),
DATEADD(MINUTE, (DATEPART(HOUR, @val)),
CAST(CAST(@val AS DATE) AS DATETIME)));
SELECT @val; -- 1899-12-30 00:01:30.000
. 그런 다음 분 값을 기준으로시 값과 초를 기준으로 분을 더합니다.
UPDATE
문과 함께 사용할 수 있지만 의도하지 않는 한 모든 내용을 업데이트하지 않으려면 WHERE
절을 사용해야합니다.
예 업데이트 쿼리 :이
CREATE TABLE #temp
(
AvgTimeToAnswer DATETIME
);
INSERT INTO #temp
(AvgTimeToAnswer)
VALUES ('1899-12-30 01:30:00.000');
SELECT *
FROM #temp; -- 1899-12-30 01:30:00.000
UPDATE #temp
SET AvgTimeToAnswer = DATEADD(SECOND, DATEPART(MINUTE, AvgTimeToAnswer),
DATEADD(MINUTE,
(DATEPART(HOUR, AvgTimeToAnswer)),
CAST(CAST(AvgTimeToAnswer AS DATE) AS DATETIME)));
-- WHERE some condition
SELECT *
FROM #temp; -- 1899-12-30 00:01:30.000
DROP TABLE #temp;
하지만 어떻게 당신이 그 * 일정 * 기록이 식별 할 수 있습니까? – GurV
Minutes to Seconds 및 Hour to Minutes 값을 이동 하시겠습니까? –
맞음 시간을 00:01:30으로 표시하고 현재 01:30:00으로 표시하고 분을 초로 표시하려고합니다. 특정 레코드를 식별하는 방법에 대해서는 확신 할 수 없지만 알아낼 수있는 레코드입니다. – Tom