J'utilise cette condition Where dans l'une de mes requêtes avec MySql Database.My Le problème est que j'ai une colonne displaytime dans ma table, mais cette colonne de table affiche les données en heure UTC.et je souhaite convertir cette colonne displaytime en heure locale Zone.so comment puis-je fournir cette installation de requête elle-même.
J'ai goggled les choses et par là j'ai su que quelque chose comme SELECT CONVERT_TZ()
fonctionnera pour cela. Mais cela ne fonctionne pas pour moi.
Voici ma requête dans laquelle j'ai besoin de convertir displaytime en fuseau horaire local ... alors quelqu'un peut-il me guider s'il vous plaît?
WHERE displaytime >= '2012-12-01 00:00:00'
AND displaytime <='2013-02-22 23:59:59'
AND ct.organizationId IN (
SELECT t.organizationId
FROM organization_ AS t
JOIN organization_ AS p ON t.treePath LIKE CONCAT(p.treePath, '%')
WHERE p.organizationId = 10707
SAmple DAta
SELECT CONVERT_TZ () fonctionnera pour cela. Mais cela ne fonctionnera pas pour moi.
Pourquoi, quelle erreur obtenez-vous?
SELECT CONVERT_TZ(displaytime,'GMT','MET');
devrait fonctionner si votre type de colonne est timestamp ou date
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_convert-tz
Testez comment cela fonctionne:
SELECT CONVERT_TZ(a_ad_display.displaytime,'+00:00','+04:00');
Vérifiez votre table de fuseau horaire
SELECT * FROM mysql.time_zone;
SELECT * FROM mysql.time_zone_name;
http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html
Si ces tables sont vides, vous n'avez pas initialisé vos tables de fuseaux horaires. Selon le lien ci-dessus, vous pouvez utiliser mysql_tzinfo_to_sql
programme pour charger les tables de fuseaux horaires. S'il vous plaît essayer ceci
Shell> mysql_tzinfo_to_sql /usr/share/zoneinfo
ou si cela ne fonctionne pas, lisez plus: http://dev.mysql.com/doc/refman/5.5/en/mysql-tzinfo-to-sql.html
Dans mon cas, où les fuseaux horaires ne sont pas disponibles sur le serveur, cela fonctionne très bien:
SELECT CONVERT_TZ(`date_field`,'+00:00',@@global.time_zone) FROM `table`
Remarque: global.time_zone utilise le fuseau horaire du serveur. Vous devez vous assurer qu'il a le fuseau horaire souhaité!
select convert_tz(now(),@@session.time_zone,'+05:30')
remplacez '+05: 30' par le fuseau horaire souhaité. voir ici - https://stackoverflow.com/a/3984412/2359994
pour formater au format horaire souhaité, par exemple:
select DATE_FORMAT(convert_tz(now(),@@session.time_zone,'+05:30') ,'%b %d %Y %h:%i:%s %p')
vous obtiendrez pareil -> 17 décembre 2014 10:39:56