SQLite heeft een time()
functie waarmee u een tijdwaarde kunt retourneren op basis van een tijdreeks en eventuele modificaties.
Het geeft de tijd terug in dit formaat:HH:MM:SS
Om deze functie te gebruiken, moet u een tijdreeks opgeven, plus eventuele (optionele) modifiers. Met een modifier kunt u de tijd wijzigen, zoals een aantal uren toevoegen, instellen op lokale tijd, enz.
Syntaxis
De syntaxis van de time()
functie gaat als volgt:
time(timestring, modifier, modifier, ...)
De timestring
argument moet een geldige tijdreeks zijn.
De modifier
argumenten zijn optioneel. U kunt een of meer modifiers opgeven. Als je een modifier opgeeft, moet het een geldige modifier zijn.
Voorbeeld
Hier is een eenvoudig voorbeeld om de time()
. te demonstreren functie wordt gebruikt met één argument.
SELECT time('now');
Resultaat:
03:47:36
De now
tijdreeks wordt geconverteerd naar de huidige datum en tijd. Aangezien ik de time()
. gebruik functie, wordt alleen het tijdgedeelte geretourneerd.
Een modificatie toevoegen
We kunnen het vorige resultaat wijzigen door een modifier te gebruiken. Hier is een voorbeeld.
SELECT time('now', '+5 hours');
Resultaat:
08:48:24
In dit geval heb ik vijf uur aan de tijd toegevoegd.
Meerdere modificaties
Zoals vermeld, kunt u een of meer modifiers toevoegen. Hier is een voorbeeld van het toevoegen van een andere modifier aan het vorige voorbeeld.
SELECT time('now', '+5 hours', 'localtime');
Resultaat:
18:50:08
De localtime
modifier gaat ervan uit dat de opgegeven tijdreeks in Universal Coordinated Time (UTC) is. Vervolgens wordt de tijdreeks aangepast zodat de lokale tijd wordt weergegeven.
Daarom kunt u, afhankelijk van uw lokale tijd, een ander resultaat krijgen.
Letterlijke tekenreeks als de tijdreeks
De bovenstaande voorbeelden gebruiken now
als de tijdreeks, maar u kunt elke geldige tijdreeks opgeven.
Hier zijn een paar andere voorbeelden.
SELECT time('1999-12-18 17:10:23');
Resultaat:
17:10:23
In dit geval verwijdert het eenvoudig het datumgedeelte van de datum.
time() versus strftime()
De time()
functie geeft exact hetzelfde resultaat als strftime('%H:%M:%S', ...)
geeft terug. De time()
functie is gewoon een handiger manier om het te doen.
SELECT
time('now'),
strftime('%H:%M:%S', 'now');
Resultaat:
time('now') strftime('%H:%M:%S', 'now') ----------- --------------------------- 03:56:09 03:56:09
Datumbereik
Zoals met alle SQLite-datum- en tijdfuncties, time()
werkt alleen voor datums tussen 0000-01-01 00:00:00 en 9999-12-31 23:59:59 (julian-dagnummers 1721059.5 t/m 5373484.5).
Voor datums buiten dat bereik zijn de resultaten niet gedefinieerd.