This answer is a little long, and the documentation will not tell you about it (because they assume that you save your dates as UTC dates in the database), but the answer to this question depends a lot on the time zone, the dates are saved. You also do not use Date('now') , but use the julianday() function to calculate both dates back to the total date, and then subtract the difference between these results from each other.
If your dates are stored in UTC:
SELECT julianday('now') - julianday(DateCreated) FROM Payment;
This is what has a top rating, and is also in the documentation . This is only part of the picture, and a very simplified answer if you ask me.
If your dates are stored in local time, using the above code will make your WRONG answer the number of hours of your GMT offset. If you are located in the Eastern state of the USA, like me, that is GMT-5, your result will contain 5 hours. And if you try to make DateCreated compatible with UTC, because julianday('now') goes against the GMT date:
SELECT julianday('now') - julianday(DateCreated, 'utc') FROM Payment;
This has an error in which it will add an hour for DateCreated , which is during daylight saving time (March-November). Say that "now" at noon per day is not related to DST, and you created something back in June (during DST) at noon, your result will be 1 hour, not 0 hours, for part of the hours. You will need to write a function in your application code that displays the result in order to change the result and subtract the hour from the DST dates. I did this until I realized that there is a better solution to this problem: SQLite vs. Oracle - calculating date differences - hours
Instead, as pointed out to me, for dates stored in local time, make both matches local:
SELECT julianday('now', 'localtime') - julianday(DateCreated) FROM Payment;
Or add 'Z' at local time:
julianday(datetime('now', 'localtime')||'Z') - julianday(CREATED_DATE||'Z')
Both of these seem to compensate and do not add an extra hour for DST dates and do a direct subtraction - so that an element created at noon on a DST day, when checked at noon on a day other than DST, will not receive an additional hour when performing the calculation.
And although I admit that most of them will say that they do not store local time dates in your database and store them in UTC so that you do not encounter this, not all applications have a worldwide audience, and not every programmer wants to go through EVERY conversion dates in their system in UTC and return again each time they do GET or SET in the database and understand if something is local or in UTC.