sql >> Database >  >> RDS >> SQLite

Geldige tijdreeksindelingen voor SQLite-datum-/tijdfuncties

Hieronder vindt u een lijst met geldige tijdtekenreeksen die u kunt gebruiken in elke datum- en tijdfunctie in SQLite.

Tijdreeks Voorbeeld
JJJJ-MM-DD 30-12-2020
JJJJ-MM-DD UU:MM 2020-12-30 10:45
JJJJ-MM-DD UU:MM:SS 2020-12-30 10:45:07
JJJJ-MM-DD UU:MM:SS.SSS 2020-12-30 10:45:07.123
JJJJ-MM-DD T UU:MM 2020-12-30T10:45
JJJJ-MM-DD T UU:MM:SS 2020-12-30T10:45:07
JJJJ-MM-DD T UU:MM:SS.SSS 2020-12-30T10:45:07.123
UU:MM 10:45
UU:MM:SS 10:45:07
UU:MM:SS.SSS 10:45:07.123
nu 2020-12-30 10:45:07
DDDDDDDDDD 2459213.94799769

De now time string retourneert de huidige datum en tijd met behulp van Universal Coordinated Time (UTC).

De DDDDDDDDDD time string is het Juliaanse dagnummer uitgedrukt als een drijvende-kommawaarde.

Hoe werken de tijdreeksen?

Wanneer u een van de SQLite-datum- en tijdfuncties gebruikt, moet u een tijdreeks opgeven. Deze tijdreeks vertegenwoordigt de datum/tijd waarop u probeert te formatteren of de bewerking uit te voeren.

De tijdreeks die u opgeeft, moet voldoen aan een van de geldige indelingen in de bovenstaande tabel.

Voorbeeldcode

Hier is een eenvoudig voorbeeld om enkele van de tijdreeksen in de bovenstaande tabel te demonstreren.

.mode line
SELECT 
  datetime('2020-12-30'),
  datetime('now'),
  datetime('2459213.94799769');

Resultaat:

      datetime('2020-12-30') = 2020-12-30 00:00:00
             datetime('now') = 2020-04-24 22:58:31
datetime('2459213.94799769') = 2020-12-30 10:45:07

Tijdzone-indicator

Alle tijdreeksen die de tijd bevatten (zoals UU:MM, UU:MM:SS, enz.) kunnen ook een tijdzone-indicator bevatten. Dit betekent alle tijdreeksen van rij 2 tot rij 10 in de bovenstaande tabel.

De tijdzone-indicator kan de vorm aannemen [+-]HH:MM of gewoon Z .

De Z achtervoegsel verandert niets, omdat de SQLite-datum- en tijdfuncties toch al intern UTC/zulu-tijd gebruiken.

Elke niet-nul HH:MM achtervoegsel wordt afgetrokken van de aangegeven datum en tijd om de zulu-tijd te berekenen.

Voorbeeld van tijdzone-indicatoren

Hier zijn enkele voorbeelden om te demonstreren.

SELECT 
  datetime('10:45Z'),
  datetime('10:45+01:00'),
  datetime('10:45-01:00');

Resultaat:

     datetime('10:45Z') = 2000-01-01 10:45:00
datetime('10:45+01:00') = 2000-01-01 09:45:00
datetime('10:45-01:00') = 2000-01-01 11:45:00

  1. Maak een index op een enorme MySQL-productietafel zonder tafelvergrendeling

  2. hoe een tekenreeks voor een reeks te prefixen die is gegenereerd door postgresql?

  3. Snapshot-replicatie maken

  4. Wat is er met (nolock) in SQL Server?