提问人:Millennial 提问时间:8/9/2023 最后编辑:Millennial 更新时间:8/9/2023 访问量:37
使用 MySQL 数据库中的 flask 显示的日期时间值不正确
Incorrect datetime value displayed using flask from MySQL database
问:
我有一个数据库存储,其中有一个名为 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”,因此应该没有问题。我不明白为什么烧瓶会显示它所显示的内容。谁能解释一下它是如何工作的?
感谢您在我的问题上花费宝贵的时间
答: 暂无答案
评论