Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Postgres TIME vs TIME with TIME zone_Django_Postgresql_Timezone - Fatal编程技术网

Django Postgres TIME vs TIME with TIME zone

Django Postgres TIME vs TIME with TIME zone,django,postgresql,timezone,Django,Postgresql,Timezone,有人能解释一下,在处理以下情况时,博士后的逻辑是什么吗 Django视图接收以下格式的时间字符串表示: 18:30 PM 然后,它一直持续到博士后。我在DB中创建了两列,以突出处理上述时间的差异: start_at time NOT NULL, start_at_tz timetz NOT NULL, 以下是在DB中保存的内容: 其行为似乎是应用于时区列的7小时差异。值格式似乎没有包含24小时/天的截止值 早期时间转换为: 下午13:00 下午14:00 有人能解释一下PostgreSQL

有人能解释一下,在处理以下情况时,博士后的逻辑是什么吗

Django视图接收以下格式的时间字符串表示:

18:30 PM
然后,它一直持续到博士后。我在DB中创建了两列,以突出处理上述时间的差异:

start_at time NOT NULL,
start_at_tz timetz NOT NULL,
以下是在DB中保存的内容:

其行为似乎是应用于时区列的7小时差异。值格式似乎没有包含24小时/天的截止值

早期时间转换为:

下午13:00

下午14:00

有人能解释一下PostgreSQL bevahior吗。如果相关的话,我在EST时区


提前感谢。

插入值的数据库会话运行的时区值与用于显示值的会话运行的时区值不同

带时区的时间在当天的会话时区中解释,并存储为UTC午夜后的时间

你不应该把时间和时区一起使用,比如说:

带时区的time类型是由SQL标准定义的,但该定义显示的属性会导致有用性受到质疑。在大多数情况下,日期、时间、不带时区的时间戳和带时区的时间戳的组合应提供任何应用程序所需的完整的日期/时间功能范围


时区仅在与日期组合时才有意义,因为在一年中存在偏移量变化的时区。如果您处于这样一个时区,则带时区的时间显示值在一年中会有所不同。

如文档所述,带时区的时间之所以存在,是因为标准如此规定,但它被概念打破了。不要用它。@LaurenzAlbe:你介意详细解释一下吗?答案是这样的。