Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql conversion de UTC en IST

IST a 5h30 d'avance sur UTC, donc quand le 13 commence dans IST, c'est-à-dire 2015-03-13 : 00:00:00 son 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)

Et quand 13 se termine par IST c'est-à-dire 2015-03-13 : 23:59:59 son 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                                       |
+-----------------------------------------------------------+

Donc, pour obtenir les données dans IST pour le 13, vous devrez rechercher des données dans cette plage de dates.

Donc, la condition serait comme ci-dessous -

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');

et puisque vous effectuez la conversion au moment de la sélection, il renverra toutes les 13e données.