2009-12-23 7 views
0

J'ai une base de données MySQL avec deux champs: Date et Valeur. Mes dates sont des trimestres (T1-2007, T2-2008 ...). Je veux être en mesure d'utiliser la requête SQL suivante:Puis-je utiliser le type de champ de date MySQL avec le format de date personnalisé

SELECT * FROM table WHERE 1 ORDER BY Date

Comment puis-je faire cela?

+1

S'il est possible de modifier le modèle de données, il peut être judicieux de remplacer votre colonne 'Date' varchar par les deux colonnes entières:' Year' et 'Quarter'. –

Répondre

2

Je devine que vous voulez leur a ordonné de sorte que tous les 2007 autres apparaissent en ordre suivi par les 2008, etc. Cela devrait fonctionner:

SELECT * FROM table WHERE 1 ORDER BY SUBSTRING(Date, 4, 4), SUBSTRING(Date, 1, 2); 

En supposant que votre formats de date sont cohérentes et que votre La colonne 'Date' est en fait un VARCHAR ou similaire ...

1

Utilisez une colonne de date et choisissez une date pour chaque trimestre. Ensuite, vous pouvez utiliser les fonctions intégrées pour les dates.

0

N'a pas SELECT * FROM table WHERE 1 ORDER BY Date déjà trier le champ Date comme Q1-2007, Q2-2007, Q3-2007, Q4-2007? Si vous triez de telles chaînes, cela devrait être la façon dont elles sont triées.

Si alors je créerais une base de données pour contenir ces valeurs, j'utiliserais plutôt 3 champs, et utiliserais deux champs différents pour le quart et l'année.

Questions connexes