डेटाइम से एक दिन घटाएं


102

मेरे पास एक तिथि लाने के लिए 2 डेटाइम के बीच अंतर है:

SELECT DATEDIFF(DAY, @CreatedDate , GETDATE())

Ex :

SELECT DATEDIFF(DAY, '2013-03-13 00:00:00.000' , GETDATE())

मुझे इस तरह एक क्वेरी काम करने की आवश्यकता है जो बनाए गए दिन से एक दिन घटाएगी:

SELECT DATEDIFF(DAY, **@CreatedDate- 1** , GETDATE())

1
परिणाम में केवल 1 क्यों नहीं जोड़ा गया?
Damien_The_Unbeliever

यदि परिणाम से 1 घटाकर वांछित उत्तर दिया जा रहा है, तो आपके द्वारा लगाया गया प्रश्न गलत लगता है, क्योंकि परिणाम से घटाना तारीखों के पहले के दिनों में कई दिनों को जोड़ने के बराबर है।
डेमियन___बेलिवर २६'१३ को _:

तब आपने जो अभिव्यक्ति मेरे लिए पहले उत्तर के रूप में पोस्ट की थी, वह वही है जिसका मैं उपयोग करूंगा - आप इसे उत्तर के रूप में पोस्ट कर सकते हैं, लेकिन जैसा कि मैं कहता हूं, इसका मतलब है कि आपका प्रश्न वास्तव में सही नहीं है ( और आज 14 के DATEDIFFबीच 2003-03-12है) , 12) नहीं।
डेमियन_इन_यूएनबेलिवर

हां..आप सही हैं..यह परिणामों के साथ विपरीत काम करता है ..
जेम्स

जवाबों:


124

इसे इस्तेमाल करे

SELECT DATEDIFF(DAY,  DATEADD(day, -1, '2013-03-13 00:00:00.000'), GETDATE())

या

SELECT DATEDIFF(DAY,  DATEADD(day, -1, @CreatedDate), GETDATE())

3
फिलिप रेगो के उत्तर के बाद, आप तारीख से दिन निकालने के लिए SELET GETDATE () - 1 का उपयोग कर सकते हैं।
जोस बारबोसा

44

मैं इस बारे में निश्चित नहीं हूं कि आप क्या करने की कोशिश कर रहे हैं, लेकिन मुझे लगता है कि यह SQL फ़ंक्शन आपकी सहायता करेगा:

SELECT DATEADD(day,-1,'2013-04-01 16:25:00.250')

ऊपर आपको दे देंगे 2013-03-31 16:25:00.250

यह आपको ठीक एक दिन पीछे ले जाता है और किसी भी मानक दिनांक-समय या दिनांक प्रारूप पर काम करता है।

इस आदेश को चलाने का प्रयास करें और देखें कि यह आपको वह देता है जो आप खोज रहे हैं:

SELECT DATEADD(day,-1,@CreatedDate)

33

बस आज की तारीख से एक दिन घटाना:

Select DATEADD(day,-1,GETDATE())

(मूल पोस्ट -7 का उपयोग किया गया था और गलत था)


24

जाहिरा तौर पर आप एक डेटाइम से इच्छित दिनों की संख्या घटा सकते हैं।

SELECT GETDATE() - 1

2016-12-25 15:24:50.403




1

ईमानदार होने के लिए मैं सिर्फ उपयोग करता हूं:

select convert(nvarchar(max), GETDATE(), 112)

जो देता है YYYYMMDDऔर उसमें से एक घटाता है।

या अधिक सही ढंग से

select convert(nvarchar(max), GETDATE(), 112) - 1 

कल की तारीख के लिए।

Getdate()अपने मूल्य के साथ बदलेंOrderDate

select convert(nvarchar (max),OrderDate,112)-1 AS SubtractDate FROM Orders

करना चाहिए।


-1

आप यह कोशिश कर सकते हैं।

टाइमस्टैम्प = 2008-11-11 13: 23: 44.657;

SELECT DATE_SUB(OrderDate,INTERVAL 1 DAY) AS SubtractDate FROM Orders

आउटपुट: 2008-11-10 13: 23: 44.657

मुझे उम्मीद है, यह आपकी समस्या को हल करने में मदद करेगा।


2
एस क्यू एल सर्वर। समर्थन नहीं करता है INTERVALया DATE_SUB
डेमियन___बेलिवर २६'१३ को _:

चयन DATEADD (दिन, 45, आदेश) आदेश से। आपको यह मिला?
चिन्तन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.