سؤال

كيف تستخدم Datediff؟ كيف يمكنني جعل هذا للعمل؟ أم يجب أن أستخدم مؤرخة بشكل مختلف تمامًا؟

SELECT DATEDIFF('Started ','will_end') AS 'Duration' FROM my_table WHERE id = '110';

أحاول الحصول على إجابة ، كم عدد الأيام داخل تاريخين.

أود الحصول على aswer مثل:
المدة = 7 أيام ؛

لدي هذا النوع من قاعدة البيانات:

بدأت | سينتهي
2009-12-17 | 2009-12-24
2009-12-12 | 2009-12-26

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

المحلول

وضع will_end أول، started ثانيا:

SELECT  DATEDIFF('2009-12-24', '2009-12-17') 

---
  7

أيضًا ، قم بإزالة الاقتباسات المفردة من أسماء الحقل:

SELECT  DATEDIFF(will_end, started) AS Duration
FROM    my_table
WHERE   id = 110

, أو استبدلهم بالظهر:

SELECT  DATEDIFF(`will_end`, `started`) AS `Duration`
FROM    `my_table`
WHERE   `id` = 110

نصائح أخرى

هل تحصل على ملف NULL نتيجة؟ لديك أسماء الأعمدة في اقتباسات واحدة في استفسارك ، مما يعني أنك تمر الأوتار 'Started ' و 'will_end' ل DATEDIFF بدلا من قيم العمود. حاول إزالة الاقتباسات الفردية ، وسوف تبدأ في رؤية بعض النتائج:

SELECT DATEDIFF(Started, will_end) AS Duration FROM my_table WHERE id = '110';

لاحظ أن هذا سيعطيك نتيجة سلبية. للحصول على نتيجة إيجابية ، عكس ترتيب الأعمدة:

SELECT DATEDIFF(will_end, Started) AS Duration FROM my_table WHERE id = '110';

استبدل الطلب

Datediff ('Will_End' ، 'stem')

أعتقد أن هناك 3 معلمات يتم تمريرها في Datediff (DatePart ، StartDate ، enddate)

لذلك سيكون الكود الخاص بك datediff (DD ، "بدأ" ، "Will_end")

http://msdn.microsoft.com/en-us/library/ms189794.aspx

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