sql >> Databasteknik >  >> RDS >> SQLite

Hur Time()-funktionen fungerar i SQLite

SQLite har en time() funktion som gör att du kan returnera ett tidsvärde baserat på en tidssträng och eventuella modifierare.

Den returnerar tiden i detta format:TT:MM:SS

För att använda den här funktionen måste du tillhandahålla en tidssträng, plus eventuella (valfria) modifierare. En modifierare låter dig ändra tiden, som att lägga till ett antal timmar, ställa in den på lokal tid, etc.

Syntax

Syntaxen för time() funktionen går så här:

time(timestring, modifier, modifier, ...)

timestring argumentet måste vara en giltig tidssträng.

modifier argument är valfria. Du kan tillhandahålla en eller flera modifierare. Om du tillhandahåller en modifierare måste den vara en giltig modifierare.

Exempel

Här är ett grundläggande exempel för att visa time() funktion som används med ett argument.

SELECT time('now');

Resultat:

03:47:36

now tidssträngen omvandlas till aktuellt datum och tid. Eftersom jag använder time() funktion, endast tidsdelen returneras.

Lägg till en modifierare

Vi kan modifiera det tidigare resultatet genom att använda en modifierare. Här är ett exempel.

SELECT time('now', '+5 hours');

Resultat:

08:48:24

I det här fallet lade jag till fem timmar till tiden.

Flera modifierare

Som nämnts kan du lägga till en eller flera modifierare. Här är ett exempel på att lägga till ytterligare en modifierare till föregående exempel.

SELECT time('now', '+5 hours', 'localtime');

Resultat:

18:50:08

localtime modifieraren antar att tidssträngen som tillhandahålls är i Universal Coordinated Time (UTC). Den justerar sedan tidssträngen så att den visar lokal tid.

Därför kan du få ett annat resultat, beroende på din lokala tid.

Sträng bokstavlig som tidssträng

Exemplen ovan använder now som tidssträng, men du kan ange vilken giltig tidssträng som helst.

Här är några andra exempel.

SELECT time('1999-12-18 17:10:23');

Resultat:

17:10:23 

I det här fallet tar den helt enkelt bort datumdelen från datumet.

tid() vs strftime()

time() funktion returnerar exakt samma resultat som strftime('%H:%M:%S', ...) returnerar. time() funktion är bara ett bekvämare sätt att göra det på.

SELECT 
  time('now'),
  strftime('%H:%M:%S', 'now');

Resultat:

time('now')  strftime('%H:%M:%S', 'now')
-----------  ---------------------------
03:56:09     03:56:09                   

Datumintervall

Som med alla SQLites datum- och tidsfunktioner, time() Fungerar endast för datum mellan 0000-01-01 00:00:00 och 9999-12-31 23:59:59 (julian dagnummer 1721059.5 till 5373484.5).

För datum utanför det intervallet är resultaten odefinierade.


  1. Finns det en SQL Server Profiler för SQL Server Express?

  2. Välj grupp med rader som matchar alla objekt i en lista

  3. MySQL-prestanda:Hur man utnyttjar MySQL-databasindexering

  4. MySQL CEILING() Funktion – Runda uppåt till närmaste heltal