Ето някои опции за изваждане на една или повече микросекунди от израз за дата и час в MariaDB.
SUBTIME()
Функция
SUBTIME()
изважда даден период от време от стойност за време или дата и час.
Пример:
SELECT SUBTIME('2021-05-01 10:00:00', '00:00:00.123456');
Резултат:
+---------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '00:00:00.123456') | +---------------------------------------------------+ | 2021-05-01 09:59:59.876544 | +---------------------------------------------------+
Можете също да промените другите единици за време, като часове, минути, секунди и т.н.
DATE_SUB()
Функция
DATE_SUB()
функцията ви позволява да извадите определен брой единици дата/час от израз за дата или час. Следователно можем да използваме тази функция, за да върнем стойността за дата и час, минус определен брой микросекунди.
Пример:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 300 MICROSECOND);
Резултат:
+-----------------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL 300 MICROSECOND) | +-----------------------------------------------------------+ | 2021-05-01 09:59:59.999700 | +-----------------------------------------------------------+
Обърнете внимание, че MICROSECOND
ключовата дума остава не в множествено число, независимо дали изваждате една микросекунда или повече.
Предаване само на датата
Ето какво се случва, ако предоставим само стойност за дата:
SELECT DATE_SUB('2021-05-01', INTERVAL 3 MICROSECOND);
Резултат:
+------------------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL 3 MICROSECOND) | +------------------------------------------------+ | 2021-04-30 23:59:59.999997 | +------------------------------------------------+
Предполага се, че времето започва от 00:00:00 и така MICROSECOND
сумата се изважда от това.
Операторът за изваждане (-
)
Друг начин да извадите една или повече микросекунди от стойност за дата и час е да използвате оператора за изваждане (-
), известен също като оператор минус.
Пример:
SELECT '2021-05-01 10:00:00' - INTERVAL 30 MICROSECOND;
Резултат:
+-------------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL 30 MICROSECOND | +-------------------------------------------------+ | 2021-05-01 09:59:59.999970 | +-------------------------------------------------+
Операторът за събиране (+
)
Като алтернатива можете да използвате оператора за добавяне (+
) заедно с отрицателна сума.
Пример:
SELECT '2021-05-01 10:00:00' + INTERVAL -30 MICROSECOND;
Резултат:
+--------------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL -30 MICROSECOND | +--------------------------------------------------+ | 2021-05-01 09:59:59.999970 | +--------------------------------------------------+
Други начини за изваждане на микросекунди
Ето някои други подходи, които можете да използвате, за да извадите една или повече микросекунди от стойност за дата и час:
SUBTIME()
функция.ADDTIME()
функция (предоставянето на отрицателна сума ще извади тази сума от стойността за дата и час).SUBDATE()
функция (това е синоним наDATE_SUB()
когато се използва със същия синтаксис).DATE_ADD()
функция (предоставянето на отрицателна сума ще извади тази сума от стойността за дата и час).ADDDATE()
функция (предоставянето на отрицателна сума ще извади тази сума от стойността за дата и час).