使用 MySQL 数据库中的 flask 显示的日期时间值不正确

Incorrect datetime value displayed using flask from MySQL database

提问人:Millennial 提问时间:8/9/2023 最后编辑:Millennial 更新时间:8/9/2023 访问量:37

问:

我有一个数据库存储,其中有一个名为 s_status 的表,其属性为:id、timestampInUTC。timestampInUTC 属性由数据类型 datetime(6) 中最多 6 个分数的时间戳组成。我将数据从 csv 文件加载到数据库中。

这是实际数据:(在 .csv 文件中)

8,2001-02-18 20:00:33 UTC

code1:(MYSQL 工作台)

use stores;
select timestampInUTC from s_status where id=8;

其输出:

'active', '2001-02-18 20:00:33'

code2:(烧瓶)

db = mysql.connector.connect(
  host="localhost",
  user="root")
cursor = db.cursor()
cursor.execute("USE stores")
cursor.execute("SELECT timestampInUTC from s_status where id=8")
data = []
for i in cursor:
  data.append(i)
app = Flask(__name__)
@app.route("/test_route")
def test_route():
  return {"8": data}
if __name__ == '__main__':
  app.run(host='0.0.0.0', port=5010, debug=True)

其输出:

{  
   "8": [
    [
      "active", 
      "Fri, 18 Feb 2001 14:30:33 GMT"
    ]
}

我还将MySQL服务器时间配置为“+00:00”(在my.cnf文件中):

default-time-zone='+00:00'

我住在UTC +05:30时区。

我在文档中遇到了以下内容

MySQL将TIMESTAMP值从当前时区转换为UTC进行存储,并从UTC转换回当前时区进行检索。(对于其他类型的类型,如 DATETIME,不会发生这种情况。默认情况下,每个连接的当前时区是服务器的时间。

如果是这种情况,由于我将时间戳存储在 DATETIME 中,因此不应该有任何时间转换。即使有..由于服务器的时间设置为“00:00”,因此应该没有问题。我不明白为什么烧瓶会显示它所显示的内容。谁能解释一下它是如何工作的?

感谢您在我的问题上花费宝贵的时间

python 日期时间 指示器 mysql 连接器

评论

0赞 Akina 8/9/2023
您证明这是调整日期时间值的 Flask。

答: 暂无答案