18 دسامبر 2017 آموزش کاربردی2 نظر
آموزش توابع در SQL – توابع كار با تاريخ و زمان

آموزش توابع در SQL – توابع كار با تاريخ و زمان

در اين جلسه از سري آموزش هاي SQL ميخواهيم شما را با توابع در SQL آشنا كنيم.

در جلسات قبل آموزش هايي از قبيل دستور Select و دستور Concatenation داشتيم. پيشنهاد ميكنم اگر اولين بار است كه ما را براي آموزش SQL انتخاب كرده ايد حتما جلسات قبل را مطالعه نماييد و همچنين نصب SQL را نيز ياد بگيريد.

همانطور كه قبلا هم گفتيم دستور Select  مبحثي ست كه در SQL جزو كليدي ترين مواردي است كه بايد بلد باشيم. گاهي براي استخراج داده هاي مورد نيازمون با Select  بايد از توابعي استفاده كنيم كه آن داده ها را در اختيار ما قرار بدهند.

تابع ()GETDATE:

به طور مثال اگر ميخواهيد تاريخ كنوني سيستمتان (كه معمولا تاريخ همان روز ميباشد) را در كوئري خود داشته باشيد از تابع ()GETDATE استفاده كنيد.

()Select GETDATE

دستور را اجرا كرديد؟ حالا ميبينيد كه خروجي شما تاريخ سِت شده بر روي سيستمان مي باشد.

تابع ()DATEDIFF:

تابع ()DATEDIFF نيز براي بدست آوردن تاريخ مي باشد، منتها مقايسه دو تاريخي كه مد نظر شماست و ممكن است بازه ي خاصي مد نظر باشد. با يك مثال راحت تر متوجه خواهيد شد.

(()SELECT DATEDIFF( year , ‘1990-02-01’ , getdate

اين دستور از 3 بخش تشكيل شده است. بخش اول كه ما الان از year استفاده كرده ايم به اين معناست كه ميخواهيم خروجي ما بر اساس سالِ داده باشد. ميتوانيم به جاي year از Day و Month نيز استفاده كنيم كه در اين صورت خروجي را به ما بر اساس روز و يا ماه خواهد داد.

بخش دوم تاريخ شروعي است كه انتخاب مينماييم. يعني ميگوييم به طور مثال از تاريخ 01-02-1990 به بعد داده ها را به ما بده.

بخش سوم تاريخ پاياني ميباشد( يعني انتهاي بازه). ما اينجا از getdate استفاده كرديم .چون ميخواستيم تا تاريخ فعلي به ما داده بدهد. اگر تاريخ را به طور مثال ميزديم 01-02-1996، به ما داده ها را اين تاريخ ميداد.

به طور كلي اين دستوري كه ما نوشتيم يعني از تاريخ 01-02-1990 تا امروز به ما بگو چند سال وجود دارد.

يك مثال ديگر براي درك كامل ميزنيم.

ميخواهيم سن كارمندارن شركتمان را بدست بياوريم.

Select employeeID, firstname,lastname, datediff(year, birthdate, getdate()) as Age

From employees

ما اين دستور را با استفاده از جدول Northwind نوشتيم كه قبلا در اختيار شما قرار داديم و گفتيم با اين جدول تمامي مثال ها و تمرين ها را پيش ميبريم. اما شما هم ميتوانيد به همين صورت با جداول خودتان كوئري بنويسيد.

جواب اين دستور به شكل زير خواهد بود:

datediff, آموزش datediff, آموزش sql, آموزش توابع در SQL, آموزش توابع , آموزش getdate, getdate

تمرين: از جدول orders، تعداد ماه هاي تك تك سفارشات تا اكنون را حساب كنيد. در خروجي نام orderID و CustomerID را نيز ببينيم.

مطالب مرتبط:

مقدمات SQL

دستورات SQL

2 پاسخ
  1. عارف
    عارف می گوید

    چرا از دستور

    SELECT DATEDIFF(year, birthday, GETDATE()) AS sen
    استفاده میکنم سن رو یکسال کمتر نشون میده؟

  2. عارف
    عارف می گوید

    مثلا تاریخ تولد 23/11/1350 وقتی بصورت میلادی وارد شه میشه
    12.02.1972
    وحالا وقتی از کد گفته شده در اموزش بالا استفاده بشه باید سن رو 47 سال نشون بده ولی 46 نشون میده
    با تشکر از راهنمایی شما

پاسخ دهید

میخواهید به بحث بپیوندید؟
مشارکت رایگان.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *