0
votes

Fetch Nom du mois basé sur diverses dates dans le tableau

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)

La question est qu'à partir du mois prochain, le billdate aura des enregistrements pour septembre et octobre 2019.

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.

Comment chercher le mois de facture en fonction de données qui change tous les mois?


1 commentaires

J'ai édité ma réponse que vous pouvez vérifier ...


4 Réponses :


1
votes

une méthode utilise format () : xxx

une méthode plus ancienne construit la chaîne: xxx


0 commentaires

1
votes

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,''),' ','-')


2 commentaires

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.



0
votes

Vous pouvez essayer ceci: xxx

pour obtenir des données les plus récentes, vous pouvez essayer ceci xxx

à des tests d'essai: - xxx

sortie : - xxx


0 commentaires

0
votes

Utilisez la fonction Format forte> pour convertir la date de votre format. Et vous pouvez ensuite utiliser la fonction où la fonction pour obtenir les résultats du mois en cours (oct. 2019).

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');


0 commentaires