2010-04-07 6 views
5

के आउटपुट को बदलना क्या संभवतः मशीन तिथि को बदले बिना GetDate() पर एक अलग दिनांक वापस करने के लिए SQL सर्वर को धोखा देना संभव है?
यह बहुत अच्छा होगा, क्योंकि हमारे पास पुराने डेटा वाला डेटाबेस है और मैं getdate() का उपयोग करने वाले कुछ प्रश्नों का परीक्षण करने की कोशिश कर रहा हूं।
मैं अपनी मशीन की तारीख बदल सकता हूं लेकिन इससे अन्य अनुप्रयोगों के साथ कुछ अन्य समस्याएं आती हैं ...
कोई सुझाव?
धन्यवाद!गेटडेट

उत्तर

8

documentation for getdate() के अनुसार:

यह मान पर कंप्यूटर की ऑपरेटिंग सिस्टम जो SQL सर्वर के उदाहरण चल रहा है से ली गई है।

चूंकि यह ओएस से लिया गया है, मुझे नहीं लगता कि आप इसे अलग से बदल सकते हैं।

4

आप एक कस्टम फ़ंक्शन में GetDate() को हमेशा लपेट सकते हैं और हर जगह इसका उपयोग कर सकते हैं, हालांकि यह एक इष्टतम समाधान नहीं है।

+0

आप यह कैसे कर सकते हैं? भले ही आप यूडीएफ बनाते हैं, यह 'dbo.GETDATE()' –

+1

@KM होगा: आप फ़ंक्शन के कार्यान्वयन को बदल देंगे ताकि आप इसे एक स्थान को संशोधित करने में हर जगह बदल सकें। @ क्लोसबिस्कोव: अगर मुझे गलत नहीं लगता है तो आपके पास एक गैर-निर्धारक कार्य नहीं हो सकता है जैसे कि यूडीएफ में गेटडेट। – JoshBerke

+0

केएम सही है, तो इसका उपयोग केवल dbo.getdate() को निर्दिष्ट करके किया जाएगा, यह अंतर्निहित फ़ंक्शन को ओवरराइड/प्रतिस्थापित नहीं करता है। – Andrew

1

नहीं, बहुत ज्यादा नहीं है आप कुछ इस तरह के अलावा अन्य कर सकते हैं:

SELECT GETDATE()-7 --get date time 7 days ago 
0
select dateadd(dd, -7 getdate()) 
+0

के शरीर को स्वैप कर सकते हैं, और यह कैसे होगा अतीत में डेटा के खिलाफ परीक्षण करने के लिए, उन्हें बदलने के बिना getdate() के साथ कई स्क्रिप्ट चलाने में मदद करें? – Artemix