2009-03-05 15 views
5

वर्तमान तिमाही के अंतिम दिन की गणना करने का सबसे प्रभावी तरीका क्या है?वर्तमान तिमाही में अंतिम दिन की गणना करें

उदाहरण: दिनांक 3/5/09 को दिया गया, मैं 3/31/09 वापस करना चाहता हूं।

मंच ColdFusion और एसक्यूएल सर्वर

+0

@Learning: क्या आपको लगता है कि बनाया सवाल जरूरतों और [sqlserver] टैग? * थोड़ा परेशान दिखता है * – Tomalak

+1

@ टोमालक: क्योंकि यह सवाल में ऐसा कहता है? :) – Learning

+0

क्या आप अंतिम वास्तविक दिन या तिमाही के अंतिम कारोबारी दिन को करना चाहते हैं? –

उत्तर

3

यह कुछ पुनर्रचना के इस्तेमाल कर सकते हैं, लेकिन भर में बुनियादी विचार प्राप्त करना चाहिए।

<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> 
+0

lol @ जो भी इसे कम करने के लिए पर्याप्त अज्ञानी था। कुशल होने के लिए – Tomalak

+0

+1 (जिसे अनुरोध किया गया था), भले ही यह आवश्यक रूप से सुरुचिपूर्ण नहीं है। – Dane

0

एक विशिष्ट तिथि से तिमाही पाने के लिए:

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))) 
4

इस उत्तर क्वार्टर और DAYSINMONTH कार्यों में बनाया का उपयोग करता है:

#createDate(year(now()), (quarter(now())*3), daysInMonth(createDate(year(now()), quarter(now())*3,1)))# 

यह ई हो सकता है पढ़ने के लिए इच्छुक है अगर यह थोड़ा टूट गया है।


संपादित करें (@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> 
+0

धन्यवाद! अच्छा दिखने वाला फ़ंक्शन :) –

+0

मैंने इसे अपने उत्तर में पोस्ट करने के बारे में सोचा। लेकिन अनिवार्य रूप से यह आपके विचार का एक सस्ता चीर होगा, इसलिए मैंने इसके खिलाफ फैसला किया। ;-) – Tomalak

+0

@ सैम किसान: आपका संपादन हटाया गया () और मूल संस्करण पर वापस लुढ़का। एक स्थानीय चर अनावश्यक है, वास्तव में। :-) फ़ंक्शन "arguments.d" पर लिखा जाएगा, जो चोट नहीं पहुंचाएगा। – Tomalak

संबंधित मुद्दे