python测试开发django-79.ORM查询之datetime()格式化(extra )
2021/6/2 22:25:52
本文主要是介绍python测试开发django-79.ORM查询之datetime()格式化(extra ),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言django 查询数据库的时候,数据存的是 datetime() 日期格式的数据 '2020-06-22 22:34:14'
但是我们用 ORM 查询的时候,查询出来的结果是 'datetime.datetime(2020, 6, 22, 22, 34, 14)}' 跟我们预期的结果不符合。
如果每次对查询的结果日期格式后再输出会比较麻烦,最好的解决办法是在查询的时候对日期格式化,这样查询的结果就不用二次处理
使用 sql 查询,数据库里面的日期格式是'2020-06-22 22:34:14'
SELECT * from yoyo_card where card_user = 'yoyo2';
使用 django 查询的结果是 'add_time': datetime.datetime(2020, 6, 22, 22, 34, 14)
Card.objects.filter(card_user='yoyo2').values()
MyDjango>python manage.py shell >>> from yoyo.models import Card >>> >>> Card.objects.filter(card_user='yoyo2').values() <QuerySet [{'id': 2, 'card_id': '520000000001', 'card_user': 'yoyo2', 'add_time': datetime.datetime(2020, 6, 22, 22, 34, 14)}]> >>>
我们期望查询的结果,日期应该显示 格式化后的字符串 'add_time': '2020-06-22 22:34:14'
先用 sql 的 DATE_FORMAT 查询,把日期格式化
SELECT card_id, card_user, DATE_FORMAT(add_time, '%Y-%m-%d %H:%i:%s') as add_time from yoyo_card where card_user = 'yoyo2';
那么对应 django 的 extra 查询,% 是python操作符,这里用两个%%表示
Card.objects.filter(card_user='yoyo2').extra(select={'add_time':'DATE_FORMAT(add_time, "%%Y-%%m-%%d %%H:%%i:%%s")'})
# 作者-上海悠悠 QQ交流群:717225969 MyDjango>python manage.py shell >>> from yoyo.models import Card >>> >>> Card.objects.filter(card_user='yoyo2').extra(select={'add_time':'DATE_FORMAT(add_time, "%%Y-%%m-%%d %%H:%%i:%%s")'}).values('card_id', 'card_user', 'add_time') <QuerySet [{'add_time': '2020-06-22 22:34:14', 'card_id': '520000000001', 'card_user': 'yoyo2'}]> >>>
这样查询到的日期结果就会显示字符串 'add_time': '2020-06-22 22:34:14'
这篇关于python测试开发django-79.ORM查询之datetime()格式化(extra )的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器