سؤال

ولدي رأس جدول ترتيب يسمى "OrderH". في هذا الجدول أن هناك عمود يسمى "تاريخ الطلب". أحاول استرداد أوامر مع تاريخ ضمن نطاق معين. اعتقدت أنني أستطيع أن إنجاز هذا مع "بين" الكلمة لكنني عدم وجود أي حظ. هذا هو هذا SQL لقد تم fidgiting مع:

select 
    * 
from
    OrderH h
where
        h.OrderDate between '2009-06-16' and '2009-06-01'
order by
    h.OrderDate desc

وماذا أفعل الخطأ؟

هل كانت مفيدة؟

المحلول

والتاريخ أصغر يجب أن يكون أولا

between  '2009-06-01' and '2009-06-16'

وبدلا من

between '2009-06-16' and '2009-06-01'

وتكون أيضا حذرا عند استخدام بين لأنك سوف تحصل على قيمة منتصف الليل من تاريخ أكبر وأي شيء آخر

ونلقي نظرة على الموقع كيف بين العمل مع تواريخ في SQL Server؟

نصائح أخرى

وسؤال لا يعمل لأنه في المثال الخاص بك التاريخ الأول هو أكبر من التاريخ الثاني. مبادلة التواريخ. يجب أن يكون أولا أقل من يساوي التاريخ الثاني.

وانه من الصعب ان تجد التواريخ التي تنتهي قبل أن تبدأ. تغيير الحد الأدنى والأقصى ...

h.OrderDate between '2009-06-01' and '2009-06-16'
select 
    * 
from
    OrderH h
where
        h.OrderDate between '2009-06-01' and '2009-06-16'
order by
    h.OrderDate desc

في أحداث MS-SQL خادم يحدث بعد 2009-06-16 في منتصف الليل لن يتم تضمينها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top