आदेश [date]
स्तंभ पर एक सूचकांक का उपयोग करने का कोई मौका रखने के लिए (भले ही आज मौजूद नहीं है, यह भविष्य में हो सकता है), की कोशिश:
AND [date] >= DATEADD(DAY, 0, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP))
AND [date] < DATEADD(DAY, 1, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP));
आप एसक्यूएल उपयोग कर रहे हैं सर्वर 2008 या बेहतर है, तो आप कोड को छोटा करने, लेकिन अभी भी [date]
पर एक सूचकांक का उपयोग कर कुछ इस तरह कर सकते हैं, यदि कोई मौजूद:
AND CONVERT(DATE, [date]) = CONVERT(DATE, CURRENT_TIMESTAMP);
संपादित
जब से तुम उलझन में होना करने के लिए क्यों 3/6/2012
है 6 वीं मार्च और नहीं 3rd जून लगता है, मैं भी सुझाव दे सकता है कि मैन्युअल डेटाबेस में '3/6/2012'
तरह अस्पष्ट तारीख शाब्दिक डालने के बजाय, आप स्तंभ एक डिफ़ॉल्ट के रूप में करते हैं:
ALTER TABLE dbo.table_roaster_time_table
ALTER COLUMN [date] DATETIME NOT NULL;
ALTER TABLE dbo.table_roaster_time_table
ADD CONSTRAINT df_date DEFAULT (CURRENT_TIMESTAMP)
FOR [date];
आप तारीख शाब्दिक डालने के लिए जा रहे हैं तो कम से कम एक सुरक्षित और स्पष्ट प्रारूप, इस तरह के YYYYMMDD
के रूप में उपयोग:
INSERT dbo.table_roaster_time_table([date]) VALUES('20120603');
अब कोई भ्रम है।
स्रोत
2012-06-03 16:04:01
इसका कोई उपयोग नहीं है। मैंने urs उत्तरों दोनों की कोशिश की है। लेकिन डेटटाइप मैंने डेट के लिए सेट किया है डेटटाइम है। एक और बात यह है कि मैं '6/01/2012' जैसे स्थिर मूल्य का उपयोग नहीं कर सकता क्योंकि मैं दैनिक आधार पर roasters के समय सारिणी सेट करना चाहता हूं और इसके लिए मैं दैनिक वर्तमान दिनांक चाहता हूं। मैंने दिन (दिनांक) = दिन (getdate() भी उपयोग किया है, लेकिन यह काम नहीं कर रहा है और टाइमिड के लिए शून्य मान प्राप्त करता है, लेकिन मेरे पास पहले से 2 रिकॉर्ड हैं 1 में 3/6/2012 है और दूसरे के पास 2/6 है/2012 दिनांक और रिकॉर्ड – iConfused
क्या आप सुनिश्चित हैं कि "3/6/2012" 3 जून है और 6 मार्च नहीं है? –
आपको आरक्षित (और बहुत अस्पष्ट) शब्दों जैसे कि 'date' जैसे कॉलम नामों के उपयोग से बचने चाहिए।' Create_date' लंबा है लेकिन यह एक आरक्षित कीवर्ड से बचाता है और उस कॉलम में डेटा का बेहतर वर्णन करता है। –