如何将带有时区的datetime插入SQLite?

如何将带有时区的datetime插入SQLite?,sql,sqlite,datetime,timezone,timestamp,Sql,Sqlite,Datetime,Timezone,Timestamp,我知道要插入日期时间,应该使用这种格式yyyy-mm-dd hh:mm:ss 但是,我的数据集有一个时间戳字段,看起来像yyyy-mm-dd hh:mm:ss+/-0X:00,其中X可以取许多值,并且与我的计算机的本地时区不同 向SQLite插入带有此类时区信息的datetime字段的最佳方法是什么?了解这些字符串中的时区规范,但对于不同的时区,这些字符串上的任何其他操作(甚至搜索和比较)都无法正常工作 如果你想处理时区,你必须 将所有时间戳转换为一个特定时区(UTC),以便您可以使用它们进行

我知道要插入日期时间,应该使用这种格式
yyyy-mm-dd hh:mm:ss

但是,我的数据集有一个时间戳字段,看起来像
yyyy-mm-dd hh:mm:ss+/-0X:00
,其中
X
可以取许多值,并且与我的计算机的本地时区不同

向SQLite插入带有此类时区信息的datetime字段的最佳方法是什么?

了解这些字符串中的时区规范,但对于不同的时区,这些字符串上的任何其他操作(甚至搜索和比较)都无法正常工作

如果你想处理时区,你必须

  • 将所有时间戳转换为一个特定时区(UTC),以便您可以使用它们进行排序和搜索;或
  • 将时区信息保留在那里,但所有搜索、排序和其他计算都不是在SQL中进行的,而是在应用程序中进行的

我始终会插入转换为格林威治(UTS+0)的时间,客户端在从数据库检索时会将其转换为本地时间。这样,您就不需要在数据库中存储时区。如果您确实需要存储测量时间的客户端的时区,请将其放入另一列中。简单的方法是将时间存储为varcahar/string,然后在quering@EmmanuelN-这是一个糟糕的想法-这将使处理日期/时间变得更加困难;始终以可能的最佳类型存储值。远东有更好的想法;虽然,我可能会说UTC,它没有夏令时(不确定格林威治)。我相信情况不再如此。