Sql – How to insert datetime with timezone to SQLite

datetimesqlsqlitetimestamptimezone

I know that to insert a datetime this format yyyy-mm-dd hh:mm:ss should be used.

However my dataset has a timestamp field that looks like yyyy-mm-dd hh:mm:ss +/-0X:00, where X can take many values and is different from my computer's local timezone.

What is the best way to insert a datetime field with such timezone information to SQLite?

Best Answer

SQLite's built-in date and time functions understand the timezone specification in these strings, but with different timezones, any other operations on these strings (even searches and comparisons) will not work correctly.

If you want to handle time zones, you have to either

  • convert all timestamps to one specific time zone (UTC), so that you can use them for sorting and searching; or
  • leave the time zone information in there, but do all searching, sorting and other computations not in SQL but in your application.