sql >> Databáze >  >> RDS >> SQLite

Získejte datum/čas z unixového časového razítka v SQLite

Pokud máte unixové časové razítko, můžete použít DATETIME() SQLite funkce s unixepoch modifikátor pro výpočet skutečného data a času.

Alternativně můžete použít DATE() funkce, pokud potřebujete vrátit pouze datum. A je také možné použít TIME() funkce vrátit pouze časovou část.

Získejte datum a čas

Zde je příklad použití DATETIME() funkce s unixepoch modifikátor:

SELECT DATETIME(1793956207, 'unixepoch');

Výsledek:

2026-11-06 09:10:07

Získejte datum

Můžeme použít DATE() funkce, pokud potřebujeme vrátit pouze datum:

SELECT DATE(1793956207, 'unixepoch');

Výsledek:

2026-11-06

Získejte čas

Pomocí TIME() funkce vrací pouze časovou část:

SELECT TIME(1793956207, 'unixepoch');

Výsledek:

09:10:07

Kompenzace za místní časové pásmo

Můžete také přidat localtime modifikátor pro přizpůsobení výstupu vašemu místnímu časovému pásmu:

SELECT DATETIME(1793956207, 'unixepoch', 'localtime');

Výsledek:

2026-11-06 19:10:07

localtime modifikátor předpokládá, že zadaná časová hodnota je v Universal Coordinated Time (UTC) a upraví tuto časovou hodnotu tak, aby byla v localtime .

auto Modifikátor

Od SQLite 3.38.0 můžeme použít auto modifikátor namísto unixepoch modifikátor:

SELECT DATETIME(1793956207, 'auto');

Výsledek:

2026-11-06 09:10:07

Auto modifikátor způsobí, že hodnota bude interpretována buď jako juliánské číslo dne nebo jako unixové časové razítko, v závislosti na skutečné hodnotě.

Pokud je hodnota mezi 0.0 a 5373484.499999 , pak je interpretováno jako juliánské číslo dne (odpovídající datům mezi -4713-11-24 12:00:00 a 9999-12-31 23:59:59 včetně). Pro číselné hodnoty mimo rozsah platných čísel juliánského dne, ale v rozsahu -210866760000 na 253402300799 , auto modifikátor způsobí, že hodnota bude interpretována jako unixové časové razítko. Jiné číselné hodnoty jsou mimo rozsah a způsobí návrat NULL.


  1. Vysvětlení rámce MySQL High Availability Framework – Část II:Semisynchronní replikace

  2. Jak NTILE() funguje v SQL Server

  3. Výjimka Java JDBC MySQL:Operace není povolena po uzavření ResultSet

  4. Jak zkombinuji data ze dvou samostatných tabulek do jednoho kurzoru?