J'ai une table de base de données qui ressemble à ceci comme suit:
| day_start | day_end | cnt --------------------------------------------------------- | 08 Feb 2010 00:00 | 15 Feb 2010 00:00 | 55 | 15 Feb 2010 00:00 | 22 Feb 2010 00:00 | 76 | 22 Feb 2010 00:00 | 01 Mar 2010 00:00 | 756
3 Réponses :
Si cette colonne "Semaine" stocke le numéro d'une semaine donnée dans un an, vous pouvez simplement la convertir en une chaîne de date à l'aide de la fonction makedate.
select makedate(2010, week * 7);
J'ai des données, dans lesquelles nous avons une colonne load_date. Maintenant, je veux convertir la date en semaine. Dites load_date vient de 2013-01-01 à 2013-01-07 B>. Il devrait le retourner comme semaine1.Et de 2013-01-08 à 2013-01-15 B>. Il devrait renvoyer le résultat comme semaine2
Utiliser str_to_date ('201008 lundi', '% x% v% w'); code> pour obtenir une date appropriée comme 2010-02-22 code> puis utilisez Date_format code> pour obtenir le format dont vous avez besoin. P>
Je sélectionnerais simplement votre Si vous considérez dimanche le premier jour de la semaine, soustrayez jour_start code>, puis groupe par cela. Dayfweek () - 1 code> à Obtenez le dimanche le plus récent. Ajoutez ensuite 6 jours pour obtenir le samedi suivant. Et c'est votre gamme de dates: p>
Cette approche ne fonctionne pas terriblement bien si vous avez des données de différentes années dans la même table -
% u code> donne le numéro de la semaine (où le dimanche est le premier jour de la semaine) - Le premier dimanche 2009 serait de 1, tout comme le premier dimanche de 2010. Vous pourriez avoir besoin d'une approche différente. Jetez un coup d'œil à Dev. mysql.com/doc/refman/5.1/fr/...Mes rapports sont spécifiques d'année, j'ai édité la question