python sql 日期查询_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';

6792dd1b06a7908a68dbb14f26420683.png

使用 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()

>>>

我们期望查询的结果,日期应该显示 格式化后的字符串 'add_time': '2020-06-22 22:34:14'

使用 extra 查询

先用 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';

5238a81fe921d17ecb5f8a358290ef3e.png

那么对应 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')

>>>

这样查询到的日期结果就会显示字符串 'add_time': '2020-06-22 22:34:14'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值