sql >> Base de Datos >  >> RDS >> Mysql

conversión de mysql de UTC a IST

IST está 5.30 horas por delante de UTC, por lo que cuando comienza el día 13 en IST, es decir, 2015-03-13 : 00:00:00 es 2015-03-12 18:30:00 en UTC

mysql> select convert_tz('2015-03-13T00:00:00+00:00','+00:00','+05:30') ;
+-----------------------------------------------------------+
| convert_tz('2015-03-13T00:00:00+00:00','+00:00','+05:30') |
+-----------------------------------------------------------+
| 2015-03-12 18:30:00                                       |
+-----------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)

Y cuando 13 termina en IST, es decir, 2015-03-13 : 23:59:59 es 2015-03-13 18:29:59 en UTC

mysql> select convert_tz('2015-03-13T23:59:59+00:00','+00:00','+05:30') ;
+-----------------------------------------------------------+
| convert_tz('2015-03-13T23:59:59+00:00','+00:00','+05:30') |
+-----------------------------------------------------------+
| 2015-03-13 18:29:59                                       |
+-----------------------------------------------------------+

Para obtener los datos en IST para el día 13, deberá buscar datos dentro de este rango de fechas.

Entonces la condición sería la siguiente -

s.created_at 
between convert_tz('2015-03-13T00:00:00+00:00','+00:00','+05:30')
and convert_tz('2015-03-13T23:59:59+00:00','+00:00','+05:30');

y dado que está realizando la conversión en el momento de la selección, devolverá todos los datos 13.