Je propose une autre décision qui vous permettra de manipuler et de personnaliser des calendriers entre les fuseaux horaires et le groupe le plus important par semaines qui sont définies dans des fuseaux horaires différents
donc, supposons que votre mySQL est en cours d'exécution sur le serveur configuré UTC et vous voulez avoir un calendrier personnalisé qui est de 7 heures à l'avance et par conséquent vos semaines devraient commencer le samedi 7 heures
CREATE TABLE `wh_blur_calendar` (
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`y` smallint(6) DEFAULT NULL,
`q` tinyint(4) DEFAULT NULL,
`m` tinyint(4) DEFAULT NULL,
`d` tinyint(4) DEFAULT NULL,
`w` tinyint(4) DEFAULT NULL,
PRIMARY KEY (`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `wh_ints` (
`i` tinyint(4) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into wh_ints values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
maintenant un CarteSi populaire une jointure qui devrait remplir votre table:
INSERT INTO wh_blur_calendar (date)
SELECT DATE('2010-01-01 00:00:00 ') + INTERVAL a.i*10000 + b.i*1000 + c.i*100 + d.i*10 + e.i DAY
FROM wh_ints a JOIN wh_ints b JOIN wh_ints c JOIN wh_ints d JOIN wh_ints e
WHERE (a.i*10000 + b.i*1000 + c.i*100 + d.i*10 + e.i) < 10245
ORDER BY 1;
Lets mise à jour les heures:
update db_wh_repo.wh_blur_calendar set date = date_add(date, interval 7 hour);
et enfin organiser votre semaine de calendrier d'une manière personnalisée
UPDATE wh_blur_calendar
SET
y = YEAR(date),
q = quarter(date),
m = MONTH(date),
d = dayofmonth(date),
w = week(date_add((date), interval 1 day));
Croyez-moi, je passe quelques heures à venir avec cette décision, mais il vous donne tellement de liberté au cas où vous souhaitez regrouper vos résultats en fonction d'un fuseau horaire personnalisé et les définitions de la semaine.
Ce n'était pas ce que j'espérais mais ça m'a permis d'aller dans la bonne direction ... Merci – Jason