När du arbetar med MySQL kan du använda TIME()
funktion för att extrahera tidsdelen från ett värde för tid eller datum och tid.
Så det fungerar är att du skickar in uttrycket tid/datumtid som ett argument och TIME()
kommer att returnera tidsdelen.
Syntax
Syntaxen ser ut så här:
TIME(expr)
Där expr
är uttrycket tid/datumtid som du vill att tidsdelen extraheras från.
Grundläggande exempel
Här är ett exempel som använder ett datetime-värde.
SELECT TIME('2021-01-03 11:15:45');
Resultat:
+-----------------------------+ | TIME('2021-01-03 11:15:45') | +-----------------------------+ | 11:15:45 | +-----------------------------+
Bråkdelar av sekunder
Här är ett exempel där datetime-värdet också innehåller en del av bråkdelssekunder.
SELECT TIME('2021-01-03 11:15:45.123456');
Resultat:
+------------------------------------+ | TIME('2021-01-03 11:15:45.123456') | +------------------------------------+ | 11:15:45.123456 | +------------------------------------+
Utesluter sekunddelen
Här är ett exempel där sekundsdelen utelämnas från startvärdet.
SELECT TIME('2021-01-03 11:15');
Resultat:
+--------------------------+ | TIME('2021-01-03 11:15') | +--------------------------+ | 11:15:00 | +--------------------------+
I det här fallet returneras sekunddelen fortfarande, även om den utelämnades från startvärdet.
Extrahera tiden från ett "tidsvärde"
Som nämnts kan det första argumentet vara ett tidsvärde i sig (dvs. det behöver inte vara ett datetime-värde).
SELECT TIME('11:15');
Resultat:
+---------------+ | TIME('11:15') | +---------------+ | 11:15:00 | +---------------+
Statusbaserad replikering – Varning
MySQL-dokumentationen anger följande om TIME()
funktion:
Denna funktion är osäker för satsbaserad replikering. En varning loggas om du använder den här funktionen när
binlog_format
är inställd påSTATEMENT
.