خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


استفاده از تابع ()DATEADD در SQL Server

استفاده از تابع ()DATEADD در SQL Server
در SQL Server می توانید از تابع DATEADD برای افزودن یک بازه زمانی مشخص به یک تاریخ معین استفاده کنید. همچنین می توانید از آن برای کسر یک بازه زمانی مشخص استفاده کنید. همچنین می توانید DATEADD را با توابع دیگر ترکیب کنید تا تاریخ را در صورت لزوم فرمت کنید. به عنوان مثال ، شما می توانید "2020-10-03" را انتخاب کنید ، 10 سال اضافه کنید و سپس کامپوننت سال (افزایش یافته) را بازگردانید.

نرم افزار سامانه مودیان راهکار
در این مطلب، با ذکر مثال هایی ساده به نحوه کار و طرز استفاده از این تابع آشنا خواهید شد. Syntax استفاده از تابع DATEADD بصورت زیر می باشد:



DATEADD (datepart , number , date )

در مثال زیر، 10 سال به تاریخ معینی اضافه شده و سپس در خروجی نمایش داده می شود:

SELECT DATEADD(year, 10, '2020-10-03') AS 'Future Date';

+-------------------------+
| Future Date |
|-------------------------|
| 2030-10-03 00:00:00.000 |
+-------------------------+

خروجی مثال فوق از نوع datetime است چرا که مولفه تاریخ و مولفه زمان در خروجی نشان داده شده است. البته این هم دلیل دارد. دلیلش این است که شما تاریخ را بصورت یک رشته به تابع پاس دادید و در چنین شرایطی، تابع DATEADD، مقدار خروجی را از نوع datetime بازمیگرداند. اگر تاریخ بصورت رشته به این تابع پاس داده نشود، خروجی بصورت همان مقداری است که به تابع پاس داده شده است. به عنوان مثال اگر تاریخی از نوع datetime2 به عنوان پارامتر به تابع DATEADD دهید، خروجی آن هم از نوع datetime2 خواهد بود.
نتایج خروجی از تابع مذکور را با استفاده از تابع FORMAT، می توانید فرمت کنید.

SELECT
FORMAT(DATEADD(year, 10, '2020-10-03'), 'yyyy-MM-dd') AS 'yyyy-MM-dd',
FORMAT(DATEADD(year, 10, '2020-10-03'), 'dd/MM/yyyy') AS 'dd/MM/yyyy',
FORMAT(DATEADD(year, 10, '2020-10-03'), 'yyyy') AS 'yyyy',
FORMAT(DATEADD(year, 10, '2020-10-03'), 'yy') AS 'yy';

+--------------+--------------+--------+------+
| yyyy-MM-dd | dd/MM/yyyy | yyyy | yy |
|--------------+--------------+--------+------|
| 2030-10-03 | 03/10/2030 | 2030 | 30 |
+--------------+--------------+--------+------+

توجه به این نکته مهم است که تابع FORMAT، Result Set خود را به صورت یک رشته برمی گرداند.
گزینه دیگر استفاده از CONVERT برای تبدیل Result به دیتاتایپ date است:

SELECT CONVERT(date, DATEADD(year, 10, '2020-10-03')) AS Converted;

+-------------+
| Converted |
|-------------|
| 2030-10-03 |
+-------------+

اگر در خروجی، فقط قسمت روز، ماه یا سال را می خواهید، به ترتیب می توانید از توابع DAY، MONTH، YEAR استفاده کنید.
به منظور تفریق یا کسر از تاریخی معین، می توانید از اعداد منفی استفاده کنید:

SELECT DATEADD(year, -10, '2020-10-03') AS 'Earlier Date';

+-------------------------+
| Earlier Date |
|-------------------------|
| 2010-10-03 00:00:00.000 |
+-------------------------+

و البته باز هم با استفاده از تابع format، می توانید خروجی تاریخ رافرمت کنید.


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز