یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی
🎯 ثبت نام
بستن تبلیغات
تسلط کامل بر سی‌شارپ با یک دوره پروژه‌محور

یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شی‌گرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفه‌ای و امکانات کامل!

مشاهده بیشتر
SQL Server رو حرفه‌ای یاد بگیر

تو این دوره SQL Server رو از صفر تا پیشرفته یاد می‌گیری! از تراکنش‌ها و طراحی دیتابیس تا Query نویسی حرفه‌ای و پروژه‌های واقعی مثل مدیریت فروش و سیستم مالی. همه چی رو با مثال و تمرین یاد می‌گیری و یه متخصص دیتابیس می‌شی!

مشاهده بیشتر

عملگر ها و توابع بازیابی تاریخ و زمان

عملگر ها و توابع بازیابی تاریخ و زمان

جهت بازیابی و مشاهده ی تاریخ و زمان سیستم مورد نظر از توابع زیر استفاده کنید.


  1. CURRENT_DATE : تاریخ جاری را بر اساس time وابسته به موقعیت جغرافیایی و بر اساس جنس تاریخ میلادی برمی گرداند.
  2. SYSDATE : تاریخ و زمان جاری را بازگردانی می نماید.
  3. SYSTIMESTAMP : این تابع تاریخ سیستم و نیز کسر ثانیه ها و منطقه ی زمانی پایگاه داده ی مربوطه را بازایابی می کند. نوع بازگشتی (return type)، TIMESTAMP WITH TIME ZONE خواهد بود.

مثالی از کاربرد تابع SYSDATE

به منظور بازیابی و مشاهده ی تاریخ و زمان جاری سیستم، کافی است یک query مانند مثال زیر بنویسید.


1
2
3
4
5
6
7
8
9
select sysdate from dual;‎
 
        ‎ ‎
 
        SYSDATE
 
        -------‎
 
        ‎8-AUG-03‎<button></button>

فرمت یا قالب نمایش تاریخ و زمان جاری سیستم به پارامتر NLS_DATE_FORMAT بستگی دارد.
به عنوان مثال، می توان قالب نمایش تاریخ و زمان را بدین ترتیب تنظیم کرد.


1
Alter session set NLS_DATE_FORMAT=’DD-MON-YYYY HH:MIpm’;‎<button></button>

سپس دستور زیر را اجرا کرد.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
select sysdate from dual;‎
 
 
 
        ‎ ‎
 
 
 
        SYSDATE
 
 
 
        ------------------‎
 
 
 
        ‎8-AUG-2003 03:05pm<button></button>

تنظیم پیش فرض پارامتر NLS_DATE_FORMAT، فرمت DD-MON-YY می باشد.


مثالی از کاربرد تابع CURRENT_DATE

جهت مشاهده ی تاریخ و زمان جاری سیستم بر اساس موقعیت جغرافیایی آن، کافی است از تابع CURRENT_DATE استفاده کنید.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ALTER SESSION SET TIME_ZONE = '-4:0';‎
 
        ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';‎
 
        SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL;‎
 
        ‎ ‎
 
        SESSIONTIMEZONE CURRENT_DATE
 
        --------------- --------------------‎
 
        ‎-04:00          22-APR-2003 14:15:03‎
 
        ‎ ‎
 
        ALTER SESSION SET TIME_ZONE = '-7:0';‎
 
        SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL;‎
 
        ‎ ‎
 
        SESSIONTIMEZONE CURRENT_DATE
 
        --------------- --------------------‎
 
        ‎-07:00          22-APR-2003 09:15:33‎<button></button>

مثالی از کاربرد تابع SYSTIMESTAMP

به منظور مشاهده ی تاریخ و زمان جاری سیستم بر اساس موقعیت جغرافیایی که تا کسر ثانیه دقیق می باشد (تمام ثانیه های کسری را نیز نمایش می دهد)، از دستور زیر استفاده کنید.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Select systimestamp from dual;‎
 
 
 
        ‎ ‎
 
 
 
        SYSTIMESTAMP
 
 
 
        -------------------------------‎
 
        ‎22-APR-03 08.38.55.538741 AM -07:00‎<button></button>

DATE FORMAT MODEL (مدل فرمت دهی به تاریخ)

تابع to_char به شما این امکان را می دهد که یک نوع داده ی NUMBER یا DATE را به یک رشته ی متنی تبدیل کنید.
برای تبدیل یک مقدار کاراکتری (که ممکن است format آن هر فرمتی به جز فرمت پیش فرض نمایش تاریخ باشد) به یک مقدار تاریخی از تابع to-date بهره می گیریم. این تابع یک مقدار تاریخی که به صورت رشته نمایش داده شده را به فرمت نمایش تاریخ در oracle تبدیل می کند.
به عنوان مثال، برای مشاهده ی تاریخ جاری می توان query زیر را نوشت.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Select to_char(sysdate,’DAY’)”Today” FROM DUAL;‎
 
 
 
        ‎ ‎
 
 
 
        TODAY
 
 
 
        -------‎
 
 
 
        THURSDAY<button></button>

در oracle، date format model های فراوانی وجود دارد که به ترتیب زیر می باشد.


شرح
فرمت نمایش تاریخ
روز هفته
D
روز ماه
DD
روز سال
DDD
اسم روز هفته را به صورت کامل نمایش می دهد: ‘Monday’، ‘Tuesday’، ‘Wednesday’
DAY
سه حرف اول روز هفته MON’ ‘، ‘TUE’،FRI’‘
DY
هفته ی یک ماه مشخص
W
هفته ی یک سال مشخص
WW
روز ماه را با دو رقم نمایش می دهد (1-Jan, 2-Feb,…12-Dec)
MM
فقط سه حرف اول اسم ماه مورد نظر مانند: “Jan”، ”Feb”، ”Apr”
MON
اسم ماه مد نظر را به صورت کامل نمایش می دهد: ”April”، ”February”، “January”
MONTH
ماه مورد نظر را با کاراکترهای رومی نمایش می دهد (I-XII, I-Jan, II-Feb,…XII-Dec).
RM
تنها دو رقم آخر سال را نمایش می دهد.
YY
سال را به صورت کامل (با چهار رقم) نمایش می دهد.
YYYY
سال مورد نظر را با حروف نمایش می دهد مانند: “Nineteen Ninety Nine”
YEAR
ساعت را با فرمت 12 ساعته نمایش می دهد
HH
ساعت را با فرمت 12 ساعته نمایش می دهد
HH12
ساعت را با فرمت 24 نمایش می دهد
HH24
این فرمت دقیقه ها را نمایش می دهد
MI
ثانیه ها را نمایش می دهد
SS
این فرمت کسر ثانیه را نمایش می دهد
FF
هزارم ثانیه ها را نمایش می دهد
SSSSS
تاریخ را بر مبنای فرمت تاریخ جولی نمایش می دهد، یعنی تعداد روز هایی که از تاریخ 1st-Jan-4712BC تا به امروز سپری شده. (تعداد فاصله بر حسب روز ازتاریخ 1/1/1601 میلادی(
J
دو رقم آخر سال را نمایش می دهد.
RR

با توجه به عدد آغازین مانند 1st ، 2nd ،3rd 4th، th، st، rd یا nd برمی گرداند.
TH
عدد آغازین را را با حروف نمایش می دهد
SP
با توجه به زمان pm یا am برمی گرداند
AM or PM
اعداد ترکیبی را با حروف نمایش می دهد. برای مثال First، Fourthو غیره ..
SPTH

به عنوان مثال، برای مشاهده ی تاریخ امروز با فرمت بکار رفته در نمونه ی زیر


1
Friday, 7th March, 2014  ‎<button></button>

دستور زیر را بنویسید.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
select to_char(sysdate,’Day, ddth Month, yyyy’)”Today” from dual;‎
 
 
 
        ‎ ‎
 
 
 
        TODAY
 
 
 
        ------------------------‎
 
 
 
        ‎ Friday, 7th March, 2014‎<button></button>

برای مشاهده ی تاریخ استخدام تمامی کارکنان شرکت، با فرمت زیر


1
Friday, 8th August, 2003  ‎<button></button>

از این دستور استفاده می کنیم.


1
select to_char(hire_date,’Day, ddth Month, yyyy’) from emp;‎<button></button>

مثال هایی از کاربرد تابع TO_DATE

همان طور که پیش تر ذکر شد، این تابع برای تبدیل مقدار رشته ای به مقادیر تاریخی بکار می رود. برای مثال می خواهیم روز یک تاریخ مشخص مثل 15-aug-1947 را بدست بیاوریم. برای این منظور ابتدا تابع to-date را برای تبدیل مقدار رشته ای به مقدار تاریخی مورد استفاده قرار می دهیم، سپس مقدار حاصل را به تابع to-char پاس می دهیم (ارسال می کنیم) تا روز مورد نظر بدست آید.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
select to_char(to_date(’15-aug-1947’,’dd-mon-yyyy’),’Day’) ‎
 
 
 
        ‎                                         from dual;‎
 
 
 
        ‎ ‎
 
 
 
        TO_CHAR(‎
 
 
 
        --------‎
 
 
 
        Friday<button></button>

برای بدست آوردن تعداد روزهایی که از تاریخ 15-aug-1947 تاکنون سپری شده، می توان query زیر را بکار برد.


1
2
3
4
5
Select sysdate-to_date(’15-aug-1947’,’dd-mon-yyyy’) ‎
 
 
 
        from dual;‎<button></button>

حال می خواهیم اسم روز هفته که پس از گذشت 45 روز از تاریخ امروز رخ می دهد را بدست آوریم.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Select sysdate+45 from dual;‎
 
 
 
        ‎ ‎
 
 
 
        SYSDATE
 
 
 
        -------‎
 
 
 
        ‎06-JUN-2003‎<button></button>

تابع ADD_MONTHS

برای بدست آوردن اسم روزی که پس از گذشت 6 ماه از تاریخ امروز، رخ می دهد، تابع زیر را بکار می بریم.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Select ADD_MONTHS(SYSDATE,6) from dual;‎
 
 
 
        ‎ ‎
 
 
 
        ADD_MONTHS
 
 
 
        ----------‎
 
 
 
        ‎22-OCT-2003‎<button></button>

تابع MONTHS_BETWEEN

برای بدست آوردن مقدار تعداد ماه هایی که از تاریخ 15-aug-1947 تاکنون سپری شده، تابع MONTHS_BETWEEN را مورد بهره وری قرار می دهیم.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Select months_between(sysdate,to_date(’15-aug-1947’)) ‎
 
 
 
        ‎                              from dual;‎
 
 
 
        ‎ ‎
 
 
 
        ‎ Months
 
 
 
        ------‎
 
 
 
        ‎ 616.553‎<button></button>

درصورت تمایل می توانید ارقام پس از ممیز را با استفاده از تابع truncate حذف کنید.


تابع LAST_DAY

به منظور مشاهده ی آخرین روز یک ماه از تاریخ معین، تابع LAST_DAY را بکار می بریم.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
select LAST_DAY(sysdate) from dual;‎
 
 
 
        ‎ ‎
 
 
 
        LAST_DAY
 
 
 
        --------‎
 
 
 
        ‎31-AUG-2003‎<button></button>

تابع NEXT_DAY

برای مثال، می خواهیم تاریخ شنبه ی بعدی را بدست بیاوریم. برای این منظور تابع NEXT_DAY را مورد استفاده قرار می دهیم.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
select next_day(sysdate) from dual;‎
 
 
 
        ‎ ‎
 
 
 
        NEXT_DAY
 
 
 
        -----------‎
 
 
 
        ‎09-AUG-2003‎<button></button>

تابع EXTRACT

این تابع برای بازیابی روز، ماه یا سال از یک تاریخ استفاده می شود (تنها بخشی از یک تاریخ / زمان را بر می گرداند(.
این تابع مقدار فیلد datetime مشخص شده را از عبارت دربردانده ی مقدار interval یا یک datetime، استخراج کرده و برمی گرداند. پس از اینکه TIMEZONE_REGION یا TIMEZONE_ABBR را استخراج می کنید، مقدار بازگشتی یک رشته دربردارنده ی time zone یا مخفف مد نظر خواهد بود.
ساختار نگارشی تابع EXTRACT بدین ترتیب می باشد.


1
EXTRACT ( YEAR / MONTH / WEEK / DAY / HOUR / MINUTE / TIMEZONE  FROM DATE)‎<button></button>
مثال:

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


1
2
3
4
5
6
7
8
9
Select extract(year from sysdate) from dual;‎
 
        ‎ ‎
 
        EXTRACT
 
        -------‎
 
        ‎2003‎<button></button>
1394/07/27 10585 1416
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...