سؤال

أحاول العثور على عدد الأيام بين تاريخين. لقد حاولت استخدام هذا:

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))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top