Невозможно группировать по году и месяцу в sqlite с датой в миллисекундах - PullRequest
1 голос
/ 03 августа 2020

У меня есть значение столбца даты в миллисекундах в моей таблице sqlite. Теперь - мне нужно сгруппировать по месяцам, годам. Например, для января 2020 года сумма = 1200, для февраля 2020 года сумма = 1500 et c.

Я проверил несколько существующих предложений SO, но strftime у меня не работает. (Может быть потому, что я сохранил дату в миллисекундах вместо другого стандартного формата, предложенного SQLITE do c.

Я пробовал следующий код, но возвращает только одну строку для меня.

select SUM(amount) as amount, 
strftime("%m-%Y", date) as 'month-year' 
from sys_item group by strftime("%m-%Y", date);

Может ли кто-нибудь помочь в этом?

Вот пример данных

введите описание изображения здесь

Я ожидаю следующего результата в двух столбцах:

2020-08 SUM1 2020-07 SUM2

1 Ответ

2 голосов
/ 03 августа 2020

Разделите дату на 1000, чтобы удалить миллисекунды и преобразовать ее в дату:

select strftime('%Y-%m', date/1000, 'unixepoch') [year-month],
       sum(amount) amount  
from sys_item 
group by [year-month];
...