Ако имате времеви печат на Unix, можете да използвате DATETIME()
на SQLite функция с unixepoch
модификатор за изчисляване на действителната дата и час.
Като алтернатива можете да използвате DATE()
функция, ако имате нужда само от връщане на датата. Освен това е възможно да използвате TIME()
функция за връщане само на частта от времето.
Вземете датата и часа
Ето пример за използване на DATETIME()
функция с unixepoch
модификатор:
SELECT DATETIME(1793956207, 'unixepoch');
Резултат:
2026-11-06 09:10:07
Вземете датата
Можем да използваме DATE()
функция, ако се нуждаем само от връщане на датата:
SELECT DATE(1793956207, 'unixepoch');
Резултат:
2026-11-06
Вземете времето
Използване на TIME()
функцията връща само частта от времето:
SELECT TIME(1793956207, 'unixepoch');
Резултат:
09:10:07
Компенсирайте вашата местна часова зона
Можете също да добавите localtime
модификатор, за да коригирате изхода към вашата местна часова зона:
SELECT DATETIME(1793956207, 'unixepoch', 'localtime');
Резултат:
2026-11-06 19:10:07
localtime
модификаторът приема, че посочената стойност на времето е в универсално координирано време (UTC) и коригира тази времева стойност, така че да е в localtime
.
auto
Модификатор
От SQLite 3.38.0 можем да използваме auto
модификатор на мястото на unixepoch
модификатор:
SELECT DATETIME(1793956207, 'auto');
Резултат:
2026-11-06 09:10:07
Автоматичният модификатор кара стойността да се интерпретира или като число на юлиански ден, или като времеви печат на Unix, в зависимост от действителната стойност.
Ако стойността е между 0.0
и 5373484.499999
, след това се интерпретира като число на юлиански ден (съответстващо на дати между -4713-11-24 12:00:00
и 9999-12-31 23:59:59
, приобщаващ). За числови стойности извън обхвата на валидните числа за юлиански дни, но в рамките на -210866760000
до 253402300799
, auto
модификатор кара стойността да се интерпретира като времеви печат на Unix. Други числови стойности са извън обхвата и причиняват връщане NULL.