sql >> Databasteknik >  >> RDS >> Mysql

Django MySQL grupp efter dag med tidszon

Ah, det här var en bra utmaning. Jag kunde testa från PostGres, och jag kan bekräfta att det fungerar. MySQL-koden borde vara ganska nära. Det finns dock en anteckning om CONVERT_TZ-dokumentation :

MySQL (med CONVERT_TZ(dt) , from_tz, to_tz) )

from_tz = 'UTC'
to_tz = 'Australia/ACT'
report = Sale.objects.extra(
    {
        'day': "date(CONVERT_TZ(sale_date, '{from_tz}', '{to_tz}'))".format(
            from_tz=from_tz,
            to_tz=to_tz
         )
    }
).values(
    'day'
).annotate(
    day_total=Sum('total')
)

PostGres: (med VID TIDZON )

time_zone = 'Australia/ACT'
report = Sale.objects.extra(
    {'day': "date(sale_date) AT TIME ZONE '{0}'".format(time_zone)}
).values(
    'day'
).annotate(
    day_total=Sum('total')
)



  1. Upprörd med en transaktion

  2. MySQL Select Query - Få bara de första 10 tecknen i ett värde

  3. Django Rest Framework paginering extremt långsam räkning

  4. MySQL:hur förhindrar man infogning av en rad med alla kolumner =NULL?