您可以使用DATEPART:
返回表示指定日期的指定部分的整數。
與DATEADD聯合:
返回指定日期與指定數目的時間間隔(帶符號的整數)加入到該日期的指定datepart。
實施例:
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
此連鑄值到date
,以剝離時間部分和回datetime
的時間設定爲00:00:00
。然後根據小時值和基於分鐘值的秒數添加分鐘數。
您可以將此與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
你想將分鐘的值移到秒和小時到分鐘? –
正確我想將時間顯示爲00:01:30,當前顯示爲01:30:00,並將分鐘顯示爲秒。我不確定如何識別特定的記錄,但這是可以理解的。 – Tom