Ето някои опции за изваждане на една или повече микросекунди от израз за дата и час в 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()функция (предоставянето на отрицателна сума ще извади тази сума от стойността за дата и час).