Si la date est 2020-07-14, Mois de sortie: 3 ans: 2020
précédent-trimestre précédent est le 1er et le 1er trimestre du mois dernier est 3 p> li>
Si la date est 2020-03-14, Mois de sortie: 9 ans: 2019
Le trimestre précédent est le 3 et le 3ème trimestre du mois dernier est 9 P> LI>
Est-ce que cela pour le mois: p> veuillez m'aider avec l'année. J'ai cherché en ligne à travers des fonctions datrodiff et datadd, mais c'est déroutant p> ul>
3 Réponses :
Si c'est le dernier jour du trimestre, voici une solution. Cela devrait fonctionner d'avancer et de reculer.
DECLARE @ReportDate DATETIME = '2020-07-14'
DECLARE @QuarterInterval INT = -2
DECLARE @EndOfQuarter DATETIME =(SELECT DATEADD(DAY, -1, DATEADD(QUARTER, DATEDIFF(QUARTER, 0,DATEADD(QUARTER,@QuarterInterval , @ReportDate)) +1, 0)))
SELECT
TheDate = @EndOfQuarter,
TheMonth = DATEPART(MONTH,@EndOfQuarter),
TheYear = DATEPART(YEAR,@EndOfQuarter)
Ceci est légèrement plus propre: Sélectionnez Daaddd (QQ, DaturaIff (QQ, 0, 0, @ReportDate) - @quarterInterval, 0)
Il semble que produit le début du trimestre. Sur la base de l'exemple ci-dessus, la fin du trimestre a été demandée -> 3.
Je pense que je trouve plus facile d'ajuster la date au premier jour du dernier mois du trimestre en cours puis prenez 6 mois de réduction:
declare @quart int; declare @month int; declare @thedate date; set @thedate = '2020-07-14'; set @quart = DATEPART(quarter, @thedate); set @month = ((@quart - 1) * 3) + 2 set @thedate = DATEFROMPARTS(@year, @month, 1) set @thedate = DATEADD(month, @thedate, -6)
Vous pouvez essayer d'essayer:
Pas tout à fait sûr de suivre ici. 2020-07-14 Début du trimestre précédent serait 2020-04-01 mais vous avez dit que vous souhaitez que le mois soit le 3. 2020-03-14 a le même problème. Le début du trimestre précédent serait 2019-10-01. Vous voulez peut-être soustraire un mois à partir du début du trimestre précédent?