Разница между двумя датами в Sqlite3

#sql #sqlite

#sql #sqlite

Вопрос:

Я работаю в Sqlite3 и пытался

 DATEDIFF(days, listing_date, sale_date)
  

Но это не сработало. Как правильно использовать разницу между двумя столбцами, которые являются временными метками в Sqlite3?

 id  listing_date    sale_date
1   2012/02/27      2020/02/27
2   2011/06/27      2020/02/17
3   2008/08/03      2020/02/19
4   2012/12/27      2020/02/07
5   2001/02/17      2020/02/29
6   2019/02/01      2020/02/27
7   2018/02/27      2020/02/03
  

Ответ №1:

Вы можете использовать julianday():

 SELECT 
  julianday(replace(sale_date, '/', '-')) - julianday(replace(listing_date, '/', '-'))
FROM tablename
  

Вы получите разницу в днях в виде действительного числа.
Если ваши столбцы даты содержат часть времени, то вы можете получить результаты с десятичными знаками типа:, 5.1234 которые вы можете округлить() или преобразовать в целочисленные значения.
Замена / на - необходима, если вы храните даты в формате, указанном в вашем вопросе.

Комментарии:

1. Я опоздал на 2 минуты!