2011-09-30 4 views
0

J'ai une colonne de date (Date, INDEX) dans ma base de données MySQL mais comme j'ai des requêtes de date avancées à faire, je dois transférer le jour et le mois dans une nouvelle colonne, 'shortDate'. Les requêtes avancées incluent des recherches saisonnières, donc je peux rechercher toutes les photos de l'été/hiver/automne/printemps/noël/nouvel an/pâques mais de année. Cela me permet d'exécuter des requêtes comme celle-ci, pour l'été:MySQL - Transférer des données

...WHERE shortDate BETWEEN 0621 AND 0921...;" 

Ainsi, la nouvelle colonne (shortDate) devrait ressembler à ceci:

Date    shortDate 
2011-01-28   0128 
2011-06-17   0617 
2011-12-22   1222 

J'ai créé la nouvelle colonne mais je voudrais savoir la solution la plus rapide pour transférer/convertir la colonne de date et écrire la conversion à la nouvelle colonne? Est-ce possible en SQL ou dois-je inclure un autre langage de serveur?

J'ai 150.000 lignes et pourrait prendre un moment si je ne le fais pas le droite chemin. Parce que mes compétences SQL sont très rouillés, je l'aurais probablement écrit quelques ASP à lire, et secrète insérer les nouvelles données, mais j'espère qu'il ya un moyen plus rapide ...

Répondre

2

Tout ce que vous avez besoin est ceci:

Update YourTable 
set shortDate = date_format(`Date`, '%m%d') 

Ceci prendra soin de vos données existantes . Vous devez vous assurer que toutes les nouvelles données entrées dans le tableau suivront la même règle.

Vous pouvez le faire dans l'application qui insère les données ou en créant un déclencheur dans la table chargée de gérer le contenu de shortdate.

+0

Mmmm semble simple, merci Adrian. Je vais l'appliquer maintenant et voir comment ça se passe. Je vais ajouter un déclencheur aussi. – TheCarver

+0

1,5 secondes, très rapide - merci encore Adrian :) – TheCarver

Questions connexes