sql >> Database >  >> RDS >> SQLite

SQLite datum- en tijdfuncties

SQLite ondersteunt vijf functies voor het werken met datums en tijden. Dit zijn:

  • date()
  • time()
  • datetime()
  • julianday()
  • strftime()

Al deze functies accepteren een tijdreeks als argument. Ze accepteren ook andere argumenten voor het wijzigen/formatteren van de uitvoer.

De strftime() functie is de meest veelzijdige functie van de vijf. In feite kan deze functie alles wat de andere vier kunnen.

Met andere woorden, u zou strftime() . kunnen gebruiken voor al uw opmaakvereisten voor datum en tijd. De andere vier functies zijn uitsluitend beschikbaar voor het gemak.

Syntaxis

De syntaxis van elke functie is als volgt:

date(timestring, modifier, modifier, ...)
time(timestring, modifier, modifier, ...)
datetime(timestring, modifier, modifier, ...)
julianday(timestring, modifier, modifier, ...)
strftime(format, timestring, modifier, modifier, ...)

In de eerste vier functies is het eerste argument een tijdreeks en alle volgende argumenten zijn modificaties.

In de strftime() functie het eerste argument is de format string, gevolgd door de time string, en eventuele modifiers.

Alle geldige tijdreeksen en modifiers staan ​​onderaan dit artikel vermeld.

Maar laten we eerst enkele snelle voorbeelden van elk van deze functies doornemen.

De functie date()

U kunt de date() . gebruiken functie met één argument of met meerdere argumenten.

Hier is een voorbeeld met slechts één argument:

SELECT date('now');

Resultaat:

2020-04-23

Hier is een voorbeeld dat een modifier gebruikt:

SELECT date('now', 'localtime');

Resultaat:

2020-04-24

In dit geval gebruikte ik de localtime modificator. Deze modifier gaat ervan uit dat de tijdreeks in Universal Coordinated Time (UTC) staat en past de tijdreeks aan zodat de lokale tijd wordt weergegeven.

De functie time()

De time() functie is vergelijkbaar met de date() functie, behalve dat het de tijd uitvoert in plaats van de datum.

Hier is een voorbeeld:

SELECT time('now');

Resultaat:

00:02:05

En hier is het met de localtime modificatie:

SELECT time('now', 'localtime');

Resultaat:

10:02:09

De datetime()-functie

De SQLite datetime() functie combineert de vorige twee functies, in die zin dat het zowel de datum als de tijd uitvoert.

Hier is een voorbeeld:

SELECT datetime('now');

Resultaat:

"2020-04-24 00:04:13"

En hier is het met de localtime modificatie:

SELECT datetime('now', 'localtime');

Resultaat:

"2020-04-24 10:04:46"

De julianday()-functie

De julianday() functie retourneert de continue telling van dagen sinds het begin van de Juliaanse periode, dat is maandag 1 januari 4713 v.Chr., proleptische Juliaanse kalender (24 november 4714 v.Chr., in de proleptische Gregoriaanse kalender).

Zo ziet het eruit met now als de tijdreeks:

SELECT julianday('now');

Resultaat:

2458963.50964815

En hier gebruikt het de localtime modificatie:

SELECT julianday('now', 'localtime');

Resultaat:

2458963.92637685

De strftime() Functie

Zoals gezegd, de strftime() functie kan worden gebruikt om datum- en tijdwaarden uit te voeren in elk van de formaten die beschikbaar zijn in de vorige functies.

Met deze functie kunt u heel specifiek zijn met hoe uw datum/tijd-waarden zijn opgemaakt. Het stelt u in staat om het exacte formaat te geven dat u wilt dat het wordt gepresenteerd.

De syntaxis van deze functie gaat als volgt:

strftime(format, timestring, modifier, modifier, ...)

Merk op dat het eerste argument format . is . Hier geeft u het formaat op waarin u wilt dat de tijdreeks wordt uitgevoerd.

De opmaakreeks voor strftime() kan bestaan ​​uit een van de volgende vervangingen:

%d Dag van de maand:00
%f Fractionele seconden:SS.SSS
%H Uur:00-24
%j Dag van het jaar:001-366
%J Juliaans dagnummer
%m Maand:01-12
%M Minuut:00-59
%s Seconden sinds 01-01-1970
%S Seconden:00-59
%w Dag van de week 0-6 met zondag==0
%W Week van het jaar:00-53
%Y Jaar:0000-9999
%% %

Hier is een voorbeeld:

SELECT strftime('%Y-%m-%d %H:%M:%S', 'now');

Resultaat:

"2020-04-24 00:43:51"

In dit geval krijgen we hetzelfde resultaat als bij het gebruik van de datetime() functie.

Hier is het met de localtime modificatie:

SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime');

Resultaat:

"2020-04-24 10:45:27"

Nogmaals, hetzelfde resultaat als met datetime() . Het verschil is, strftime() stelt ons in staat om het formaat van de uitvoer expliciet te specificeren.

Bijvoorbeeld:

SELECT strftime('%d/%m/%Y %H:%M:%S', 'now', 'localtime');
SELECT strftime('%m/%d/%Y (%H:%M:%S)', 'now', 'localtime');
SELECT strftime('%H:%M:%S on %d/%m/%Y', 'now', 'localtime');

Resultaat:

"24/04/2020 10:49:41"
"04/24/2020 (10:52:24)"
"10:51:13 on 24/04/2020"

Geldige tijdreeksnotaties

Het time string-argument in alle datum/tijd-functies kan worden geleverd in een van de volgende formaten:

  • JJJJ-MM-DD
  • JJJJ-MM-DD UU:MM
  • JJJJ-MM-DD UU:MM:SS
  • JJJJ-MM-DD UU:MM:SS.SSS
  • JJJJ-MM-DDTHU:MM
  • JJJJ-MM-DDTHH:MM:SS
  • JJJJ-MM-DDTHH:MM:SS.SSS
  • UU:MM
  • UU:MM:SS
  • UU:MM:SS.SSS
  • nu
  • DDDDDDDDDD

Geldige modificaties

U kunt elk van de volgende modificaties gebruiken met datum-/tijdfuncties:

  • NNN dagen
  • NNN uur
  • NNN minuten
  • NNN.NNNN seconden
  • NN maanden
  • NNN jaar
  • begin van de maand
  • begin van het jaar
  • begin van de dag
  • weekdag N
  • universeel
  • lokale tijd
  • utc

De N verwijst naar een getal dat wordt toegevoegd aan de datum, gebaseerd op de opgegeven eenheid.

Bijvoorbeeld:

SELECT 
  date('now'), 
  date('now', '3 days');

Resultaat:

date('now')  date('now', '3 days')
-----------  ---------------------
2020-04-24   2020-04-27           

Hier is er een die start of month gebruikt als de modifier:

SELECT 
  date('now'), 
  date('now', 'start of month');

Resultaat:

date('now')  date('now', 'start of month')
-----------  -----------------------------
2020-04-24   2020-04-01                   

  1. Het INFORMATIESCHEMA van MySQL opvragen:waarom? Hoe?

  2. Is er een manier om OracleCommand.BindByName te dwingen standaard waar te zijn voor ODP.NET?

  3. Initiële array in functie om multidimensionale array te aggregeren

  4. Primaire sleutel wijzigen