我的某些列具有公司電話呼叫的持續時間值,其中持續時間以秒爲單位存儲。我希望將這些值轉換爲DD:HH:MM:SS格式,並且我打算使用MySQL的Sec_to_Time
函數,該函數在用於SELECT
語句時在UPDATE
語句中運行良好,以便將秒值轉換爲DD: HH:MM:SS值永久。但是,我用UPDATE
命令在幾個表上嘗試過,但是更新要麼將列中的值乘以(例如:19212更改爲〜32000)或截斷列。MySQL函數SEC_TO_TIME在UPDATE子句中不起作用
所以我試了下面的代碼,只是爲了看看發生了什麼。
CREATE TEMPORARY TABLE QueueTime_Snapshot (QueueTime int);
INSERT INTO QueueTime_Snapshot (Queuetime)
SELECT QueueTime FROM CDB_Call_and_Agent_Data;
UPDATE QueueTime_Snapshot
SET QueueTime = SEC_TO_TIME(QueueTime);
SELECT QueueTime FROM QueueTime_Snapshot;
SELECT語句返回了我已經插入臨時表的確切值;沒有什麼改變(這很奇怪,因爲其他兩個更新語句已經影響了數據的大規模改變)。當我執行
SELECT SEC_TO_TIME(QueueTime) FROM QueueTime_Snapshot;
我收到了期望值,轉換爲我想要的格式。這個函數(或通常是函數)是不是被允許在UPDATE語句中使用,還是有其他原因值沒有按照我希望的方式被轉換?
您可以分享確切的代碼,以及它在不按預期工作時使用的表格定義嗎? – JRD
'UPDATE AgentSummaryTable SET total_logged_in_time = SEC_TO_TIME(total_logged_in_time)' 是我試過的代碼,失敗了。表定義如下: total_logged_in_time int(25) total_not_ready int(25) –