Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql convertendo de UTC para IST


O IST está 5h30 à frente do UTC, portanto, quando o dia 13 começar no IST, ou seja, 2015-03-13 : 00:00:00 é 2015-03-12 18:30:00 em 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)

E quando 13 termina em IST, ou seja, 2015-03-13 : 23:59:59 é 2015-03-13 18:29:59 em 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 obter os dados no IST para o dia 13, você precisará pesquisar dados dentro desse intervalo de datas.

Portanto, a condição seria a seguinte -
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');

e como você está fazendo a conversão no momento da seleção, ele retornará todos os 13º dados.