तिथि के आधार पर हालिया रिकॉर्ड का चयन करें

मैं एक चुनिंदा क्वेरी बनाने की कोशिश कर रहा हूं जो तिथि के आधार पर तालिका से सबसे हालिया रिकॉर्ड देता है। मूल रूप से जो भी पंक्ति <कोड> [दिनांक] फ़ील्ड वर्तमान दिनांक के सबसे नज़दीक है।

नमूना डेटा:

    ID       Content         Date
--------------------------------------------
1   1050    Test Values    2013-11-27 10:46:24.900
2   1051    Test Test      2013-11-27 10:47:43.150
3   1057    Test Testx2    2013-11-27 10:48:22.820

मैं केवल इन मानों को वापस करना चाहता हूं

    ID       Content         Date
--------------------------------------------
1   1057    Test Testx2    2013-11-27 10:48:22.820

धन्यवाद!

0
आप किस डीबी इंजन का उपयोग कर रहे हैं?
जोड़ा लेखक juergen d, स्रोत
हम एसक्यूएल सर्वर 2008 का उपयोग कर रहे हैं
जोड़ा लेखक Justin Adkins, स्रोत
@wildplasser मैंने अभी एक उदाहरण के रूप में [date] का उपयोग किया था। मेरा वास्तविक कॉलम नाम [टाइमस्टैम्प] है।
जोड़ा लेखक Justin Adkins, स्रोत
यदि आप इसे क्वायर ब्रैकेट में लपेटते हैं तो आप SQL Server 2008 में कॉलम नाम के रूप में इसका उपयोग कर सकते हैं।
जोड़ा लेखक Thorsten Dittmar, स्रोत
मुझे यह पसंद है - एकमात्र उत्तर जो शुरुआत से सही था, उसे भी ऊपर उठाना नहीं है :- डी
जोड़ा लेखक Thorsten Dittmar, स्रोत
दिनांक कॉलम के लिए मान्य नाम नहीं है; यह एक प्रकार का नाम है। (एसक्यूएल नहीं केस संवेदनशील है)
जोड़ा लेखक wildplasser, स्रोत
आज़माएं: दिनांक 1 * से चुनें <तालिका नाम> तिथि डीईएससी द्वारा आदेश
जोड़ा लेखक CodeChops, स्रोत

3 उत्तर

Select TOP 1 *
from Table
order by [Date] DESC
2
जोड़ा
हाँ, यह काम किया। मैंने बस उन क्षेत्रों में * को बदल दिया जो मुझे चाहिए।
जोड़ा लेखक Justin Adkins, स्रोत
नहीं, यह सबसे पुरानी प्रविष्टि देता है और काम नहीं करेगा क्योंकि आप उन फ़ील्ड को निर्दिष्ट नहीं कर रहे हैं जिन्हें आप चुनना चाहते हैं या *
जोड़ा लेखक Thorsten Dittmar, स्रोत
@ थॉर्टेन धन्यवाद! इसे प्रबंधन स्टूडियो में जांचने में मुझे कुछ सेकंड लगे, क्योंकि मुझे टॉप के सिंटैक्स को याद नहीं आया
जोड़ा लेखक Christos, स्रोत
@ यरोस्लाव, धन्यवाद मैंने इसे बदल दिया।
जोड़ा लेखक Christos, स्रोत
तिथि के लिए ब्रैकेट का उपयोग करें, SQL सर्वर 2008+ में एक आरक्षित शब्द है
जोड़ा लेखक Yaroslav, स्रोत

या, यदि आप अपनी क्वेरी किसी भी डीबीएमएस (केवल SQL सर्वर नहीं) पर काम करना चाहते हैं, तो ANSI SQL :

select * from t याder by Date desc limit 1

या

select * from t where Date = (select max(Date) from t)
1
जोड़ा
SELECT TOP 1 * FROM Table ORDER BY [Date] DESC

यह उच्चतम तारीख से निम्नतम तक क्रमबद्ध करने के बाद पहले फ़ील्ड से सभी फ़ील्ड लौटाता है। अनिवार्य रूप से यह नवीनतम प्रविष्टि देता है।

0
जोड़ा