如何按日期筛选和转换日期时间

2024-09-27 19:19:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我从vue制作的前端发送一些日期。我在django的视图集中收到这些日期,我想从这些收到的日期中筛选数据。 我有两个问题:

  1. 如何将日期转换为Python Datetime

  2. 如何筛选日期等于或大于或等于或小于=&燃气轮机<= 换句话说:带来日期等于或大于另一个日期的记录

前面的日期格式:2021-08-03 10:12:14

背面的日期格式:

    # print(type(fechas['desde']))
    fecha <class 'str'>
    # print(fechas['desde'])
    fecha 2021-08-03 10:12:14

视图集:

            class TecnicosViewSet(
                    mixins.CreateModelMixin,
                    mixins.UpdateModelMixin,
                    mixins.RetrieveModelMixin,
                    mixins.ListModelMixin,
                    mixins.DestroyModelMixin,
                    viewsets.GenericViewSet):

                queryset = Tecnico.objects.all()
                serializer_class = Tecnicoserializer

                def list(self, request):
                    dataQ = request.GET
                    newQ = json.dumps(dict(dataQ))
                    newQ1= json.loads(newQ)
                    tecnicos = ''
                    fechas= json.loads(newQ1['fechas'][0])
                    for item in newQ1['tecnicos']:
                        itemN = json.loads(item)
                        tecnicos = itemN['tecnicos']
                    print('fechas', fechas['desde'], fechas['hasta'])
                    # fecha = datetime.strptime(fechas['desde'], '%Y-%m-%d %H:%M')
                    print('fecha', type(fechas['desde']))
                    print('fecha', fechas['desde'])
                    for id in tecnicos:
                        ordenes = Servicio_realizados_orden_trabajo.objects.filter(date_range = [fechas['desde'], fechas['hasta']]).filter(state = 1).filter(tecnico = id)
                        ordenS = ServicioRealizadosserializer(ordenes, many=True)


                    return Response({'OK'})

正如我之前所修复的:我希望将该日期转换为可理解的python格式,然后使用转换后的日期按该日期过滤数据

在viewswet中看到的for循环是我尝试执行查询的地方


Tags: 数据jsonfor格式typefiltermixinsclass
1条回答
网友
1楼 · 发布于 2024-09-27 19:19:26

根据你的代码,我认为你很接近

基本上,您可以使用strtime将字符串转换为所需格式的日期,然后在创建python datetime对象之后,就可以对它们进行比较

下面是一个例子:

from datetime import datetime

date = datetime.strptime("2021-08-03 10:12:14", "%Y-%m-%d %H:%M:%S")
if date >= datetime.strptime("2021", "%Y"):
    print('After or in 2021')
if date >= datetime.strptime("2021-09", "%Y-%m"):
    print('After or in September 2021')

相关问题 更多 >

    热门问题