簡體   English   中英

在MySQL中將間隔格式設置為'yyyy-mm-dd hh:MM:ss'

[英]Formatting an interval as 'yyyy-mm-dd hh:MM:ss' in MySQL

我有兩列DATETIME,我想將它們的區別顯示為'yyyy-mm-dd hh:MM:ss' 我的假設是間隔永遠不會變成負數。

我的搜索導致:

SELECT CONCAT(DATEDIFF(`to`, `from`), " ", TIMEDIFF(`to`, `from`))

但是它給出了:

0 00:00:00

但我希望得到:

0000-00-00 00:00:00

有沒有人有什么建議?

您可以通過重復調用TIMESTAMPDIFFTIMESTAMPADD來計算時間間隔:

例:

SET @to = CAST('2014-10-03 12:00:00' AS DATETIME);
SET @from = CAST('2011-05-12 13:12:44' AS DATETIME);

-- get the full years
SELECT TIMESTAMPDIFF(YEAR, @from, @to);  -- 3
-- get the months, without full years in between
SELECT TIMESTAMPDIFF(MONTH, TIMESTAMPADD(YEAR, TIMESTAMPDIFF(YEAR, @from, @to), @from), @to); -- 4
-- get the days, without all months in between
SELECT TIMESTAMPDIFF(DAY, TIMESTAMPADD(MONTH, TIMESTAMPDIFF(MONTH, @from, @to), @from), @to); -- 20
-- get the hours, without all days in between
SELECT TIMESTAMPDIFF(HOUR, TIMESTAMPADD(DAY, TIMESTAMPDIFF(DAY, @from, @to), @from), @to); -- 22
-- get the minutes, ...
SELECT TIMESTAMPDIFF(MINUTE, TIMESTAMPADD(HOUR, TIMESTAMPDIFF(HOUR, @from, @to), @from), @to); -- 22
-- and the same for the seconds
SELECT TIMESTAMPDIFF(SECOND, TIMESTAMPADD(MINUTE, TIMESTAMPDIFF(MINUTE, @from, @to), @from), @to); -- 16

這個小提琴中看到它

將這些值的結果連接起來很簡單:

SELECT CONCAT(
    LPAD(TIMESTAMPDIFF(YEAR, @from, @to), 4, '0'),
    '-',    
    LPAD(TIMESTAMPDIFF(
        MONTH, 
        TIMESTAMPADD(YEAR, TIMESTAMPDIFF(YEAR, @from, @to), 
        @from), @to), 2, 0),
    '-',
    LPAD(TIMESTAMPDIFF(
        DAY, 
        TIMESTAMPADD(MONTH, TIMESTAMPDIFF(MONTH, @from, @to), 
        @from), @to), 2, 0),
    ' ',
    LPAD(TIMESTAMPDIFF(
        HOUR, 
        TIMESTAMPADD(DAY, TIMESTAMPDIFF(DAY, @from, @to), 
        @from), @to), 2, 0),
    ':',
LPAD(TIMESTAMPDIFF(
        MINUTE, 
        TIMESTAMPADD(HOUR, TIMESTAMPDIFF(HOUR, @from, @to), 
        @from), @to), 2, 0),
    ':',
    LPAD(TIMESTAMPDIFF(
        SECOND, 
        TIMESTAMPADD(MINUTE, TIMESTAMPDIFF(MINUTE, @from, @to), 
        @from), @to), 2, 0)
);
-- result: 0003-04-20 22:47:16

看到它在這個小提琴中起作用。 請考慮結果很容易像0001-02-30 01:12:14 ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM