आप तालिका में एक परिकलित कॉलम जोड़ सकते हैं जो उन स्ट्रिंग्स को तारीखों में बदल देगा जब आपके विवेचक के पास एक विशिष्ट मान होगा (यहाँ मैंने अभी-अभी 'date'
का उपयोग किया है। )।
ALTER TABLE Foo
ADD trueDate AS
CASE
WHEN type = 'date' THEN CONVERT(date, 'mixedColumn', 101)
ELSE NULL
END
PERSISTED
अगर आपके पास समय की जानकारी है तो date
datetime
होना चाहिए CONVERT()
. में समारोह।
साथ ही, 101
एक स्टाइल कोड है जो MM/dd/yyyy
. के अपेक्षित प्रारूप को दर्शाता है . अगर आपके पास कुछ अलग है, तो इसे देखें:http://msdn.microsoft .com/en-us/library/ms187928.aspx
, लेकिन ध्यान रखें कि यदि आप 100 से नीचे की शैली का उपयोग करते हैं तो आपकी अभिव्यक्ति को गैर-नियतात्मक माना जाएगा और आप अपना परिकलित कॉलम PERSISTED
नहीं बना सकते। , इसलिए रूपांतरण प्रत्येक प्रश्न के साथ तुरंत किया जाएगा (आप ऐसा नहीं चाहते हैं)।
जब पंक्ति मान बदलते हैं तो परिकलित कॉलम स्वयं अपडेट हो जाएगा; अन्यथा मान किसी अन्य कॉलम की तरह ही बने रहते हैं और क्वेरी करने योग्य होते हैं। किसी ट्रिगर की आवश्यकता नहीं है।