Локальная дата в SQLite - PullRequest
0 голосов
/ 08 июня 2018

У меня есть записи, содержащие временные метки, и я хочу иметь возможность группировать по дате (в соответствии с моим часовым поясом).

В качестве временных отметок уже используются строки ISO 8601 (в том же часовом поясе с указанным смещением UTC).Я попытался использовать функцию SQLite date, однако, похоже, она дает только даты UTC:

select date(time), time from mytable;

('2001-07-14', '2001-07-15 09:40:02.500000+10:00'),
('2001-07-14', '2001-07-15 09:39:38.500000+10:00'),
('2001-07-21', '2001-07-22 09:46:09.500000+10:00'),
...

В Postgres я бы взял метку времени UTC и сделал бы что-то вроде ((mystring::timestamp at time zone 'UTC') at time zone 'AEST')::date.Я полагаю, если мои временные метки уже выражены с моим желаемым смещением, я мог бы просто сделать усечение строки (то есть substr(time,1,10)), но этот код кажется гораздо менее читаемым.Может ли SQLite обычно преобразовывать временные метки в локализованные даты?

1 Ответ

0 голосов
/ 08 июня 2018

Можно попробовать date(time,'localtime') при условии, что целевой часовой пояс в настоящее время также является системным локальным часовым поясом (что является неудобным требованием).

В противном случае date(time, '+10 hours').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...