2009-04-02 14 views

उत्तर

8

यह काम कर सकता है।

SET @WhereClause1 = 'where a.Date > ''' + convert(varchar, @InvoiceDate) + '''' 

हालांकि मूल्य शून्य होने पर एक त्रुटि उठाई जाएगी।

+0

इस उद्धरण चिह्नों – eKek0

+0

ठीक है, धन्यवाद, मैं इसे साथ –

+0

ठीक कर देंगे साथ क्योंकि आप संलग्न करने के लिए तिथि (स्ट्रिंग के अंदर) काम नहीं करता है "सुधार ने जो किया वह मुझे किया। धन्यवाद सभी – Jeff

1

आपकी रचनात्मक क्वेरी पहले स्ट्रिंग के रूप में, तो मुझे लगता है कि आपको @InvoiceDate को this जैसे किसी स्ट्रिंग में कनवर्ट करने की आवश्यकता है। http://www.databasejournal.com/features/mssql/article.php/10894_2197931_1/Working-with-SQL-Server-DateTime-Variables-Part-Two---Displaying-Dates-and-Times-in-Different-Formats.htm

1

... और आपको शायद उद्धरणों में दिनांक तारों को संलग्न करने की आवश्यकता होगी।

शायद कॉलिंग दिनचर्या में दिनांक स्ट्रिंग का निर्माण करना बेहतर होगा क्योंकि आपको शून्य मानों और शायद अन्य मान्यताओं के लिए जांच करनी चाहिए।

6

यह काम करेगा:

SET @WhereClause1 = 'where a.Date > ''' + cast(@InvoiceDate as varchar(100)) + '''' 
+0

मेरी इच्छा है कि मैं दो उत्तरों को अनुमोदित कर सकूं क्योंकि यह भी काम करता है। धन्यवाद – Jeff

+0

+1 इसे 100% सही –

+0

प्राप्त करने के लिए +1 जब मुझे यह समस्या हो, तो मैं एक का चयन करता हूं और दूसरों को अंक (तीर ऊपर) देता हूं (यदि वे 1 से अधिक हैं)। इसका मतलब यह नहीं है कि आपको वही करना है :) – eKek0

1
EXEC sp_executesql N'SELECT * FROM Orders WHERE a.Date > @date', 
        N'@date datetime', 
        @date = @InvoiceDate 
संबंधित मुद्दे