आपको SQL सर्वर में उपलब्ध दिनांक समय स्वरूपों को देखना चाहिए:http:// msdn.microsoft.com/en-us/library/ms187928.aspx
yyyy-mm-dd hh:mi
आपको क्या उपयोग करना चाहिए:
कोशिश करें:
SELECT
*
FROM Records
WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19'
उपरोक्त क्वेरी में स्ट्रिंग्स को डेटाटाइम डेटा प्रकार में बदल दिया जाएगा यदि DateCreated
एक डेटाटाइम कॉलम है। और क्वेरी काम करेगी।
आप डेटाटाइम डेटा प्रकार के स्थानीय चर बना सकते हैं और एक क्वेरी का उपयोग कर सकते हैं जैसे:
DECLARE @StartDate datetime, @EndDate datetime
SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'
SELECT
*
FROM Records
WHERE DateCreated>[email protected] AND DateCreated<[email protected]
मुझे <, <=,>=, या> का उपयोग करना पसंद है क्योंकि यह BETWEEN
की तुलना में अधिक लचीलेपन की अनुमति देता है और आपको समापन बिंदुओं को शामिल करने या न करने के बारे में सोचने के लिए मजबूर करता है।
एक और बात पर विचार करना है कि पूरे दिन का सारा डेटा प्राप्त करना:
DECLARE @StartDate datetime, @EndDate datetime
--set the days you want
SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'
--remove the time
SELECT @StartDate=DATEADD(day,DATEDIFF(day,0,@StartDate),0), @EndDate=DATEADD(day,DATEDIFF(day,0,@EndDate),0)
--get everything on '2007-02-30' up to the end of the day on '2008-06-21'
SELECT
*
FROM Records
WHERE DateCreated>[email protected] AND DateCreated<@EndDate+1