J'ai une table contenant une colonne de billdate I.e. Bill Dates pour divers clients. La plage de billets varie du 1er septembre au 30 septembre. Sur la base du billebaté, je souhaite récupérer le nom du mois au format "Sep-19" (19 d'année 2019) P>
La question est qu'à partir du mois prochain, le billdate aura des enregistrements pour septembre et octobre 2019. P>
Pour oct. 2019, le mois de la facture que je souhaite chercher est "OCT-19", car je créerai un rapport basé sur des données présentes pour les factures en octobre. P>
Comment chercher le mois de facture en fonction de données qui change tous les mois? P>
4 Réponses :
une méthode utilise une méthode plus ancienne construit la chaîne: p> format () code>:
format code> est une fonction affreuse pour cela, c'est horriblement lent. Je recommande vivement convert code> et un code de style, ainsi que de la manipulation de chaîne. REPLACE(STUFF(CONVERT(varchar(11),BillDate,106),1,3,''),' ','-')
Appréciez la réponse, mais comment puis-je apporter le dernier mois de la date de la facture chaque fois que les nouvelles données sont insérées? !!
Je ne comprends pas le commentaire, @xorpower, ce qui précède est une expression pour manipuler la valeur de la colonne.
Vous pouvez essayer ceci: pour obtenir des données les plus récentes, vous pouvez essayer ceci p> à des tests d'essai: - p> sortie strong>: - p>
Utilisez la fonction Remarque: le format est une petite et une belle fonction si vous utilisez pour créer cette requête de rapport pour de petites données. Mais si vous travaillez avec des ensembles de données relativement volums, je recommanderais de convertir comme format aurait une incidence sur les performances. P> Select *
From
(select your_field1, your_field2, format(BillDate, 'MMM-yy') as Current_Date from your_table) as alias_table
Where [Current_Date] = format(GETDATE(), 'MMM-yy');
J'ai édité ma réponse que vous pouvez vérifier ...