使用 MYSQL,我可以計算時間差并將其作為級聯輸出。我正在使用來自此處的查詢。
WITH difference_in_seconds AS (
SELECT
id,
departure,
arrival,
TIMESTAMPDIFF(SECOND, departure, arrival) AS seconds
FROM travel
),
differences AS (
SELECT
id,
departure,
arrival,
seconds,
MOD(seconds, 60) AS seconds_part,
MOD(seconds, 3600) AS minutes_part,
MOD(seconds, 3600 * 24) AS hours_part
FROM difference_in_seconds
)
SELECT
id,
departure,
arrival,
CONCAT(
FLOOR(seconds / 3600 / 24), ' days ',
FLOOR(hours_part / 3600), ' hours ',
FLOOR(minutes_part / 60), ' minutes ',
seconds_part, ' seconds'
) AS difference
FROM differences;
我的輸出是這樣的:
id departure arrival difference
1 2018-03-25 12:00:00 2018-04-05 07:30:00 10 days 19 hours 30 minutes 0 seconds
我想做的是獲取“差異”的連接字串并更新/插入到另一個表中。在另一個表中,我有一列名為“time_difference”,因此我嘗試使用更新查詢。我還有一個條件集,它應該只更新到相關的用戶組態檔。
UPDATE airport_database.user
SET time_difference = (SELECT
id,
departure,
arrival,
CONCAT(
FLOOR(seconds / 3600 / 24), ' days ',
FLOOR(hours_part / 3600), ' hours ',
FLOOR(minutes_part / 60), ' minutes ',
seconds_part, ' seconds'
) AS difference
FROM differences)
WHERE name = "Sir";
然而,我得到
錯誤 #1241 - 運算元應包含 1 列。
因此,我還嘗試通過以下方式獲取連接值:
UPDATE airport_database.user
SET time_difference = (difference)
WHERE name = "Sir";
我得到
錯誤 #1054 - “欄位串列”中的“差異”列未知。
我想知道為什么我的串聯字串列無法被 MYSQL 檢測到。
任何幫助將不勝感激,謝謝。
uj5u.com熱心網友回復:
演示。
CREATE TABLE src (id INT, departure DATETIME, arrival DATETIME); INSERT INTO src VALUES (1, '2018-03-25 12:00:00', '2018-04-05 07:30:00'); CREATE TABLE dst (id INT, departure DATETIME, arrival DATETIME, verbal_diff VARCHAR(255)); INSERT INTO dst SELECT *, NULL FROM src; SELECT * FROM dst;
ID 離開 到達 語言差異 1 2018-03-25 12:00:00 2018-04-05 07:30:00 空值
UPDATE dst JOIN (SELECT id, CONCAT(TIMESTAMPDIFF(DAY, departure, arrival), DATE_FORMAT(TIMEDIFF(arrival, departure), ' days %H hours %i minutes %s seconds')) difference FROM src) data USING (id) SET dst.verbal_diff = data.difference; SELECT * FROM dst;
ID 離開 到達 語言差異 1 2018-03-25 12:00:00 2018-04-05 07:30:00 10天19小時30分00秒
db<>在這里擺弄
請參閱UPDATE 陳述句,多表語法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/395649.html
上一篇:面向物件的設計來模擬通用設備
