CURRENT四半期の最終日を計算する最も効率的な方法は何ですか?CURRENT四半期の最終日の計算
例:3/5/09の日付を与えられました。3/31/09に戻りたいと思います。
プラットフォームは、ColdFusionおよびSQL Serverの
CURRENT四半期の最終日を計算する最も効率的な方法は何ですか?CURRENT四半期の最終日の計算
例:3/5/09の日付を与えられました。3/31/09に戻りたいと思います。
プラットフォームは、ColdFusionおよびSQL Serverの
SELECT DATEADD(qq, DATEDIFF(qq, - 1, '3/5/09'), - 1)
これは、いくつかのリファクタリングを使用することができますが、全体の基本的な考え方を取得する必要があります。
<cffunction name="lastDayOfQuarter">
<cfargument name="d" default="#now()#">
<cfif month(d) lte 3>
<cfreturn createDate(year(d),03,31)>
</cfif>
<cfif month(d) lte 6>
<cfreturn createDate(year(d),06,30)>
</cfif>
<cfif month(d) lte 9>
<cfreturn createDate(year(d),9,30)>
</cfif>
<cfreturn createDate(year(d),12,31)>
</cffunction>
特定の日から四半期を取得するには:
SELECT dateadd(dd,-1,dateadd(qq,1,DATEADD(qq, DATEDIFF(qq,0,<date here>), 0)))
をそれとも、現在の四半期を意味する場合:
SELECT dateadd(dd,-1,dateadd(qq,1,DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)))
をこの答えは四半期およびDAYSINMONTH機能に建て使用しています:
#createDate(year(now()), (quarter(now())*3), daysInMonth(createDate(year(now()), quarter(now())*3,1)))#
eそれが少し壊れている場合は読んでください。
EDIT(@Samファーマー:私はCFの機能にあなたの提案を変換するために自由を取った)
<cffunction name="LastOfQuarter" returntype="date" output="no" access="public">
<cfargument name="d" type="date" required="no" default="#Now()#">
<cfset d = CreateDate(Year(d), Quarter(d) * 3, 1)>
<cfreturn DateAdd("d", d, DaysInMonth(d) - 1)>
</cffunction>
@Learningを:あなたが考えて作ったもの、質問のニーズとは、[SQLServerの]タグの? *少し混乱しているように見える* – Tomalak
@トマラク:それは質問でそう言いますか? :) – Learning
最後の実際の日、または四半期の最終営業日をやりたいですか? –