توابع مدیریت تاریخ و زمان در SQL Server
توابع تاریخ و زمان در SQL Server ابزارهایی برای مدیریت دادههای تاریخی و زمانی هستند که شامل DATEDIFF و توابع مشابه میشوند.
توابع مدیریت تاریخ و زمان در SQL Server
توابع مدیریت تاریخ و زمان در SQL Server ابزارهایی هستند که به کاربران این امکان را میدهند تا دادههای زمانی را به طور دقیق و مؤثر مدیریت کنند.
این توابع به شما کمک میکنند تا با دادههای مربوط به تاریخ و زمان بهراحتی کار کنید، مانند محاسبه اختلاف بین دو تاریخ، تغییر فرمت تاریخها، یا انجام عملیاتهای خاص روی تاریخها.
بهطور کلی، با استفاده از این توابع میتوانید تاریخها و زمانها را بهطور دقیق ذخیره و پردازش کنید.
این ابزارها همچنین برای انجام محاسبات پیچیده زمانی بسیار مفید هستند، مانند افزودن یا کم کردن روزها، ماهها یا سالها به یک تاریخ خاص.
علاوه بر این، توابعی وجود دارند که بخشهای مختلف تاریخ مانند سال، ماه، روز، ساعت و دقیقه را استخراج کرده و امکان دسترسی دقیقتر به دادههای زمانی را فراهم میکنند.
در نهایت، استفاده از این توابع در SQL Server موجب میشود تا دادههای زمانی بهطور صحیح ذخیره و پردازش شوند و کار با آنها در پایگاهداده بسیار سادهتر شود.
انواع توابع مدیریت تاریخ و زمان در SQL Server
-
GETDATE
تابع GETDATE تاریخ و زمان فعلی سرور را بازمیگرداند.
ساختار:
SELECT GETDATE();
توضیحات:
این تابع تاریخ و زمان جاری سرور را در فرمت استاندارد DATETIME بازمیگرداند. این خروجی شامل اطلاعات تاریخ (سال، ماه، روز) و زمان (ساعت، دقیقه، ثانیه و میلیثانیه) است.
مثال:
SELECT GETDATE() AS CurrentDateTime;
خروجی:
2025-01-02 14:23:45.123
-
SYSDATETIME
تابع SYSDATETIME تاریخ و زمان فعلی سرور را با دقت بالاتر از GETDATE ارائه میدهد.
ساختار:
SELECT SYSDATETIME();
توضیحات:
این تابع اطلاعات تاریخ و زمان را در فرمت DATETIME2 بازمیگرداند که دقت میلیثانیه بیشتری نسبت به GETDATE دارد.
مثال:
SELECT SYSDATETIME() AS CurrentDateTimeHighPrecision;
خروجی:
2025-01-02 14:23:45.1234567
-
DAY, MONTH, YEAR
این توابع برای استخراج روز، ماه و سال از یک مقدار تاریخ به کار میروند.
ساختار:
SELECT DAY(GETDATE()) AS Day,
MONTH(GETDATE()) AS Month,
YEAR(GETDATE()) AS Year;
توضیحات:
DAY عدد روز ماه را بازمیگرداند.
MONTH عدد ماه را بازمیگرداند.
YEAR عدد سال را بازمیگرداند.
مثال:
SELECT DAY('2025-01-02') AS DayPart,
MONTH('2025-01-02') AS MonthPart,
YEAR('2025-01-02') AS YearPart;
خروجی:
DayPart | MonthPart | YearPart
------------------------------
2 | 1 | 2025
-
DATENAME
تابع DATENAME نام یک بخش خاص از تاریخ (مانند ماه یا روز) را بهصورت رشته بازمیگرداند.
ساختار:
SELECT DATENAME(MONTH, GETDATE()) AS MonthName;
توضیحات:
این تابع بخشی از تاریخ را بهصورت متن بازمیگرداند. برای مثال، بهجای عدد 1 برای ماه ژانویه، کلمه January را بازمیگرداند.
مثال:
SELECT DATENAME(WEEKDAY, '2025-01-02') AS WeekDayName;
خروجی:
WeekDayName
------------
Thursday
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
همین حالا شروع کنید و به دنیای دادهها بپیوندید!
-
DATEPART
تابع DATEPART عدد یک بخش خاص از یک تاریخ (مانند روز هفته یا ماه) را بازمیگرداند.
ساختار:
SELECT DATEPART(WEEKDAY, GETDATE()) AS WeekDayNumber;
توضیحات:
میتوانید با استفاده از این تابع، بخشهای مختلف تاریخ را بهصورت عددی استخراج کنید.
برای مثال: YEAR برای سال، MONTH برای ماه و WEEKDAY برای شماره روز هفته استفاده میشود.
مثال:
SELECT DATEPART(YEAR, '2025-01-02') AS YearPart;
خروجی:
YearPart
---------
2025
-
DATEFROMPARTS
تابع DATEFROMPARTS یک تاریخ جدید با ترکیب سال، ماه و روز مشخص ایجاد میکند.
ساختار:
SELECT DATEFROMPARTS(2025, 1, 2) AS SpecificDate;
توضیحات:
این تابع به شما اجازه میدهد یک تاریخ خاص را با وارد کردن مقادیر جداگانه برای سال، ماه و روز ایجاد کنید.
مثال:
SELECT DATEFROMPARTS(2025, 12, 25) AS ChristmasDate;
خروجی:
ChristmasDate
--------------
2025-12-25
-
DATETIME2FROMPARTS
تابع DATETIME2FROMPARTS یک مقدار DATETIME2 با جزئیات کامل ایجاد میکند.
ساختار:
SELECT DATETIME2FROMPARTS(2025, 1, 2, 10, 30, 45, 1234567, 7) AS FullDateTime2;
توضیحات:
این تابع تاریخ و زمان دقیقی را با دقت بالا برای کاربردهای خاص ایجاد میکند.
مثال:
SELECT DATETIME2FROMPARTS(2025, 5, 15, 18, 45, 30, 5000000, 7) AS EventDateTime;
خروجی:
EventDateTime
-------------------------------
2025-05-15 18:45:30.5000000
-
DATETIMEFROMPARTS
تابع DATETIMEFROMPARTS یک مقدار DATETIME ایجاد میکند.
ساختار:
SELECT DATETIMEFROMPARTS(2025, 1, 2, 10, 30, 45, 123) AS FullDateTime;
توضیحات:
این تابع تاریخ و زمان را در فرمت استاندارد DATETIME ایجاد میکند.
مثال:
SELECT DATETIMEFROMPARTS(2025, 7, 20, 14, 0, 0, 0) AS MeetingDateTime;
خروجی:
MeetingDateTime
-------------------
2025-07-20 14:00:00.000
-
DATETIMEOFFSETFROMPARTS
این تابع یک مقدار DATETIMEOFFSET با منطقه زمانی مشخص ایجاد میکند.
ساختار:
SELECT DATETIMEOFFSETFROMPARTS(2025, 1, 2, 10, 30, 45, 1234567, -5, 7) AS DateTimeOffset;
توضیحات:
این تابع برای مدیریت زمان با منطقه زمانی مشخص استفاده میشود.
مثال:
SELECT DATETIMEOFFSETFROMPARTS(2025, 8, 10, 12, 15, 0, 0, 3, 7) AS ZonedDateTime;
خروجی:
ZonedDateTime
----------------------------
2025-08-10 12:15:00.0000000 +03:00
-
SMALLDATETIMEFROMPARTS
این تابع یک مقدار SMALLDATETIME با دقت کمتر ایجاد میکند.
ساختار:
SELECT SMALLDATETIMEFROMPARTS(2025, 1, 2, 10, 30) AS SmallDateTime;
توضیحات:
این تابع برای مقادیر تاریخ و زمان با دقت کمتر (تا دقیقه) استفاده میشود.
مثال:
SELECT SMALLDATETIMEFROMPARTS(2025, 9, 15, 8, 45) AS ShiftStartTime;
خروجی:
ShiftStartTime
------------------
2025-09-15 08:45:00
-
TIMEFROMPARTS
این تابع یک مقدار زمان (TIME) ایجاد میکند.
ساختار:
SELECT TIMEFROMPARTS(10, 30, 45, 1234567, 7) AS SpecificTime;
توضیحات:
برای زمانی که فقط به زمان (بدون تاریخ) نیاز دارید، از این تابع استفاده کنید.
مثال:
SELECT TIMEFROMPARTS(14, 20, 0, 0, 0) AS BreakTime;
خروجی:
BreakTime
----------
14:20:00.0000000
-
DATEDIFF
تابع DATEDIFF تفاوت بین دو تاریخ را بر اساس واحد مشخصی (مثل روز یا ماه) محاسبه میکند.
ساختار:
SELECT DATEDIFF(DAY, '2025-01-01', '2025-01-02') AS DaysDifference;
توضیحات:
این تابع بسیار کاربردی برای محاسبه فاصله زمانی بین دو تاریخ است.
مثال:
SELECT DATEDIFF(YEAR, '2000-01-01', GETDATE()) AS YearsDifference;
خروجی:
YearsDifference
----------------
25
-
DATEADD
تابع DATEADD مقدار مشخصی را به یک تاریخ اضافه میکند.
ساختار:
SELECT DATEADD(DAY, 10, GETDATE()) AS NewDate;
توضیحات:
برای تغییر تاریخ، مانند اضافه کردن روزها، ماهها یا سالها، از این تابع استفاده کنید.
مثال:
SELECT DATEADD(MONTH, -1, GETDATE()) AS PreviousMonth;
خروجی:
PreviousMonth
---------------
2024-12-02 14:23:45.123
-
EOMONTH
تابع EOMONTH آخرین روز ماه مشخص را بازمیگرداند.
ساختار:
SELECT EOMONTH(GETDATE()) AS EndOfMonth;
توضیحات:
این تابع برای پیدا کردن انتهای ماه جاری یا ماههای دیگر استفاده میشود.
مثال:
SELECT EOMONTH('2025-02-10') AS FebruaryEnd;
خروجی:
FebruaryEnd
------------
2025-02-28
-
تابع ISDATE
این تابع بررسی میکند که آیا مقدار مشخصشده یک تاریخ معتبر است یا خیر.ساختار:
ISDATE(expression)
مثال:
SELECT ISDATE('2023-12-15') AS IsValidDate,
ISDATE('Invalid Date') AS IsValidDate2;
خروجی:
1 و 0 (1 برای معتبر بودن و 0 برای نامعتبر بودن).
نکات پیشرفته درباره توابع تاریخ و زمان
-
استفاده از تاریخها در مقایسهها
در SQL Server شما میتوانید تاریخها را با یکدیگر مقایسه کنید. برای مثال:
SELECT * FROM Orders
WHERE OrderDate > '2025-01-01';
-
عملیاتهای جمعزنی و تفریق با تاریخ
شما میتوانید تاریخها را با هم جمع یا تفریق کنید. برای مثال:
SELECT DATEADD(DAY, 30, GETDATE()); -- 30 روز به تاریخ فعلی اضافه کن
-
دقت در انتخاب نوع داده
انتخاب نوع داده مناسب برای تاریخ و زمان، مثل DATETIME, DATE, TIME, DATETIME2 و SMALLDATETIME بسته به نیازهای شما بسیار مهم است.




کاربران ما
شما هم نظرتون با ما دریاره “توابع مدیریت تاریخ و زمان در SQL Server” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید