SQL DateTime اختلاف في الأيام
-
29-09-2019 - |
سؤال
أحاول العثور على عدد الأيام بين تاريخين. لقد حاولت استخدام هذا:
SET Days_Outstanding = DATEDIFF(day, CONVERT(datetime, LS_CHG_DTE_EQP, 1), CONVERT(datetime, Report_Date, 1))
ومع ذلك ، هذا لا يعيد الرقم في الأيام. إنه يعيد وقتًا في السنوات التي لا علاقة لها بمجموعة البيانات الخاصة بي.
لست متأكدًا من أين المشكلة ، لا تزال جديدة إلى حد ما على SQL. أيضا ، لدي أيام _outsespise محددة على أنها int ، هل يمكن أن تكون هذه هي المشكلة؟ شكرًا!
تعديل
شكرا لكم جميعا! لست متأكدًا مما حدث ، لقد غيرت بعض الأشياء إلى ما اقترحته وانتهى الأمر بالعمل عندما عدت إلى ما كان لدي في الأصل. لست متأكدا ما حدث. شكرا فكر!
المحلول
DATEDIFF
يعود عدد صحيح
ومع ذلك ، يمكن أن يكون عدد الأيام خاطئًا بشكل واضح اعتمادًا على القيم/نوع البيانات من LS_CHG_DTE_EQP/Report_Date
و locale
ايضا، DATEDIFF
يعمل على حدود النهار وليس الفترات على مدار 24 ساعة. لذا 23:56
إلى 00:02
يوم واحد.
خلاف ذلك ، يرجى إضافة مثال الإدخال والإخراج.
نصائح أخرى
مثال
select DATEDIFF(dd,'20100101',getdate())
سيعود 227 اليوم
لذلك في حالتك على افتراض ls_chg_dte_eqp و report_date كلا من عمود DateTime
SET @Days_Outstanding = DATEDIFF(day, LS_CHG_DTE_EQP, Report_Date)
هل حاولت فقط
SET Days_Outstanding = CONVERT(datetime, LS_CHG_DTE_EQP, 1) - CONVERT(datetime, Report_Date, 1))