DATEDIFF (DATEDIFF)
تابع DATEDIFF در SQL Server اختلاف دو تاریخ را می دهد. «اختلاف (Difference)» یعنی فاصله زمانی بین دو لحظه. نتیجه همیشه عدد صحیح است. این برای محاسبه سن، مدت عضویت، یا فاصله دو رخداد کاربردی است.
تعریف و کاربرد ساده
تابع DATEDIFF اختلاف دو تاریخ را برحسب یک «واحد زمانی (Interval)» برمی گرداند؛ مثلاً سال یا ماه.
سینتکس (Syntax)
سینتکس یعنی شکل نوشتن دستور. سه ورودی دارد: واحد، تاریخ اول، تاریخ دوم.
DATEDIFF(interval, date1, date2)
مثال 1: اختلاف برحسب سال
اختلاف بین دو تاریخ را به سال حساب می کنیم. خروجی عدد صحیح است.
SELECT
DATEDIFF(year, '2017/08/25', '2011/08/25') AS DateDiff;
مثال 2: اختلاف برحسب ماه
این بار اختلاف را به ماه می گیریم. برای قسط ها مفید است.
SELECT
DATEDIFF(month, '2017/08/25', '2011/08/25') AS DateDiff;
مثال 3: اختلاف برحسب ساعت
برای رخدادهای یک روز، اختلاف ساعتی را حساب می کنیم.
SELECT
DATEDIFF(hour, '2017/08/25 07:00', '2017/08/25 12:45') AS DateDiff;
ورودی ها و واحدهای مجاز
برای interval می توانی از این ها استفاده کنی: year|yyyy|yy، quarter|qq|q، month|mm|m، dayofyear، day|dy|y، week|ww|wk، weekday|dw|w، hour|hh، minute|mi|n، second|ss|s، millisecond|ms.
نکات فنی و سازگاری
نوع خروجی int است. این تابع در SQL Server 2008 و بالاتر، Azure SQL Database، Azure SQL Data Warehouse و Parallel Data Warehouse کار می کند.
نکته: برای ساخت تاریخ های آینده از DATEADD کمک بگیر. همچنین می توانی صفحه تابع DATEDIFF را نشانه گذاری کنی.
برای ساخت تاریخ از اجزاء، صفحه DATEFROMPARTS را ببین.
گام های عملی
- دو تاریخ نمونه انتخاب کن.
- واحد مناسب را تعیین کن؛ مثل
month. - دستور را اجرا کن و خروجی عددی را بخوان.
- در گزارش خود ستون اختلاف را اضافه کن.
جمع بندی سریع
- DATEDIFF اختلاف زمانی را برمی گرداند.
- خروجی همیشه عدد صحیح است.
- واحدهای گوناگون پشتیبانی می شود.
- برای سن و گزارش ها عالی است.