"

عملکرد تابع ()GETDATE در SQL Server و موارد استفاده از آن,مشاهده تاریخ و زمان فعلی  در SQL Server ,استفاده از GETDATE در گزارش‌گیری

عملکرد تابع ()GETDATE در SQL Server و موارد استفاده از آن

عملکرد تابع ()GETDATE در SQL Server تاریخ و زمان فعلی سرور را برمی‌گرداند و در ثبت و مدیریت داده‌های زمانی کاربرد دارد.

تیم تحریریه
7
0
17 تیر 1405
لینک کوتاه

عملکرد تابع ()GETDATE در SQL Server و موارد استفاده از آن

در بسیاری از برنامه‌های کاربردی و پایگاه‌های داده، ثبت و مدیریت تاریخ و زمان نقش بسیار مهمی دارد.
اطلاعاتی مانند زمان ثبت سفارش، تاریخ ورود کاربران، زمان ایجاد رکوردها، ثبت لاگ‌های سیستم، زمان آخرین ویرایش اطلاعات و بسیاری موارد دیگر به تاریخ و زمان وابسته هستند.
SQL Server برای کار با تاریخ و زمان مجموعه‌ای از توابع کاربردی را در اختیار توسعه‌دهندگان قرار می‌دهد که یکی از پرکاربردترین آن‌ها تابع ()GETDATE  است.

تابع ()GETDATE یکی از توابع داخلی SQL Server محسوب می‌شود که تاریخ و زمان فعلی سرور را برمی‌گرداند.
این تابع به دلیل سادگی و کاربرد گسترده، در بسیاری از پروژه‌های نرم‌افزاری، گزارش‌گیری‌ها، فرآیندهای خودکار و عملیات مربوط به مدیریت داده‌ها مورد استفاده قرار می‌گیرد.

 

عملکرد تابع ()GETDATE در SQL Server و موارد استفاده از آن



تابع GETDATE چیست؟

تابع ()GETDATE  تاریخ و زمان جاری سیستم عامل سروری که SQL Server روی آن نصب شده است را برمی‌گرداند.

ساختار استفاده از این تابع بسیار ساده است:

 

SELECT GETDATE();

 

خروجی نمونه:

 

2026-07-05 14:30:45.123

 

در این خروجی:

  • تاریخ جاری نمایش داده می‌شود.

  • ساعت جاری نمایش داده می‌شود.

  • دقیقه و ثانیه نیز نمایش داده می‌شوند.

  • بخش میلی‌ثانیه نیز وجود دارد.


نوع داده خروجی GETDATE  در SQL Server 

خروجی تابع ()GETDATE از نوع داده DATETIME است.

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

مثال:

 

DECLARE @CurrentDate DATETIME;

SET @CurrentDate = GETDATE();

SELECT @CurrentDate;


مشاهده تاریخ و زمان فعلی  در SQL Server 

ساده‌ترین کاربرد GETDATE نمایش تاریخ و زمان فعلی سیستم است.

 

SELECT GETDATE() AS CurrentDateTime;

 

خروجی:

CurrentDateTime

2026-07-05 14:30:45.123







🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟

با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!

این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.

با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.

پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!

 همین حالا شروع کنید و به دنیای داده‌ها بپیوندید!






درج تاریخ فعلی هنگام ثبت رکورد

یکی از رایج‌ترین کاربردهای GETDATE ثبت زمان ایجاد رکوردها است.

فرض کنید جدول کاربران داریم:

 

CREATE TABLE Users

(

UserId INT,

FullName NVARCHAR(100),

RegisterDate DATETIME

);

 

در هنگام درج اطلاعات:

INSERT INTO Users

(

UserId,

FullName,

RegisterDate

)

VALUES

(

1,

'Ali Ahmadi',

GETDATE()

);

 

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

 

استفاده از GETDATE به عنوان مقدار پیش‌فرض

می‌توان زمان فعلی را به عنوان مقدار پیش‌فرض یک ستون تعیین کرد.

 

CREATE TABLE Orders

(

OrderId INT IDENTITY,

OrderDate DATETIME

DEFAULT GETDATE()

);

 

اکنون هنگام درج رکورد:

 

INSERT INTO Orders DEFAULT VALUES;

 

تاریخ و زمان فعلی به صورت خودکار ذخیره خواهد شد.

 

استفاده از GETDATE در گزارش‌گیری

در بسیاری از گزارش‌ها نیاز داریم تاریخ فعلی را نمایش دهیم.

 

SELECT

OrderId,

GETDATE() AS ReportDate

FROM Orders;

 

این کار باعث می‌شود زمان تولید گزارش مشخص باشد.

 

محاسبه اختلاف تاریخ با GETDATE

تابع GETDATE معمولاً همراه تابع DATEDIFF استفاده می‌شود.

مثال:

 

SELECT

DATEDIFF(

DAY,

'2026-01-01',

GETDATE()

) AS DaysPassed;

 

این دستور تعداد روزهای سپری شده از ابتدای سال را محاسبه می‌کند.

 

محاسبه سن کاربران

فرض کنید تاریخ تولد در جدول ذخیره شده است.

 

SELECT

FullName,

DATEDIFF(

YEAR,

BirthDate,

GETDATE()

) AS Age

FROM Users;

 

این Query سن تقریبی کاربران را محاسبه می‌کند.

 

نمایش رکوردهای امروز

برای نمایش اطلاعات ثبت شده در روز جاری:

 

SELECT *

FROM Orders

WHERE CAST(OrderDate AS DATE)

=

CAST(GETDATE() AS DATE);

 

فقط سفارشات امروز نمایش داده می‌شوند.

 

نمایش رکوردهای هفته جاری

SELECT *

FROM Orders

WHERE OrderDate >=

DATEADD(

DAY,

-7,

GETDATE()

);

 

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

 

نمایش رکوردهای ماه جاری

SELECT *

FROM Orders

WHERE MONTH(OrderDate)

=

MONTH(GETDATE())

AND

YEAR(OrderDate)

=

YEAR(GETDATE());



استفاده از GETDATE همراه DATEADD

تابع DATEADD برای اضافه یا کم کردن زمان استفاده می‌شود.

 

  • اضافه کردن یک روز

SELECT DATEADD(

DAY,

1,

GETDATE()

);
  • اضافه کردن یک ماه

SELECT DATEADD(

MONTH,

1,

GETDATE()

);
  • اضافه کردن یک سال

SELECT DATEADD(

YEAR,

1,

GETDATE()

);

کم کردن زمان با GETDATE در SQL Server

  • یک روز قبل

SELECT DATEADD(

DAY,

-1,

GETDATE()

);
  • یک ماه قبل

SELECT DATEADD(

MONTH,

-1,

GETDATE()

);
  • یک سال قبل

SELECT DATEADD(

YEAR,

-1,

GETDATE()

);



یافتن کاربران غیرفعال

فرض کنید آخرین ورود کاربران ذخیره شده است.

 

SELECT *

FROM Users

WHERE LastLogin <

DATEADD(

MONTH,

-6,

GETDATE()

);

 

کاربرانی که بیش از شش ماه وارد سیستم نشده‌اند نمایش داده می‌شوند.

 

استفاده در ثبت لاگ

یکی از مهم‌ترین کاربردهای GETDATE ثبت لاگ سیستم است.

 

INSERT INTO SystemLogs

(

LogMessage,

LogDate

)

VALUES

(

'User Login',

GETDATE()

);



استفاده در Triggerها

در تریگرها نیز از GETDATE زیاد استفاده می‌شود.

مثال:

CREATE TRIGGER trg_UpdateDate

ON Products

AFTER UPDATE

AS

BEGIN




UPDATE Products

SET LastUpdate =

GETDATE()




END



استفاده در Stored Procedure

CREATE PROCEDURE SaveLog

AS

BEGIN




INSERT INTO Logs

(

LogDate

)

VALUES

(

GETDATE()

);




END



استخراج بخش‌های مختلف تاریخ



سال جاری

SELECT YEAR(GETDATE());

ماه جاری

SELECT MONTH(GETDATE());

روز جاری

SELECT DAY(GETDATE());

ساعت جاری

SELECT DATEPART(

HOUR,

GETDATE()

);

دقیقه جاری

SELECT DATEPART(

MINUTE,

GETDATE()

);




تبدیل GETDATE به فرمت‌های مختلف

فقط تاریخ

SELECT

CAST(

GETDATE()

AS DATE

);

 

نتیجه:

 

2026-07-05

فقط زمان

SELECT

CAST(

GETDATE()

AS TIME

);

 

نتیجه:

14:30:45

 

تفاوت GETDATE و CURRENT_TIMESTAMP

در SQL Server این دو تقریباً عملکرد یکسانی دارند.

SELECT GETDATE();

SELECT CURRENT_TIMESTAMP;

 

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

 

تفاوت GETDATE و SYSDATETIME

تابع ()SYSDATETIME  دقت بیشتری دارد.

 

SELECT SYSDATETIME();

 

نمونه خروجی:

 

2026-07-05 14:30:45.1234567

 

در حالی که GETDATE دقت کمتری دارد:

2026-07-05 14:30:45.123

 

مزایای استفاده از GETDATE در SQL Server

  • سادگی

    استفاده از آن بسیار آسان است.
  • سرعت

    نیاز به محاسبات پیچیده ندارد.
  • کاربرد گسترده

    تقریباً در تمامی پروژه‌های SQL استفاده می‌شود.
  • مناسب برای ثبت زمان

    در ثبت سفارشات، لاگ‌ها و فعالیت کاربران بسیار کاربردی است.




مزایای استفاده از GETDATE در SQL Server



کاربردهای واقعی GETDATE در SQL Server

برخی از کاربردهای مهم این تابع عبارت‌اند از:

  • ثبت زمان ایجاد رکورد

  • ثبت زمان ویرایش اطلاعات

  • ثبت لاگ‌های سیستم

  • مدیریت سفارشات

  • گزارش‌گیری روزانه

  • محاسبه سن کاربران

  • بررسی کاربران غیرفعال

  • مدیریت اعتبار اشتراک‌ها

  • محاسبه زمان باقی‌مانده

  • تحلیل رفتار کاربران


کاربردهای واقعی GETDATE در SQL Server



نکات مهم عملکرد تابع ()GETDATE در SQL Server

  • زمان بر اساس سرور است

    GETDATE زمان سیستم عامل سرور SQL را برمی‌گرداند نه زمان کامپیوتر کاربر.
  • دقت محدود

    اگر به دقت بسیار بالا نیاز دارید بهتر است از SYSDATETIME استفاده کنید.
  • استفاده در WHERE

    در جداول بزرگ بهتر است از ایندکس‌های مناسب استفاده شود تا عملکرد Query کاهش پیدا نکند.

 

جمع‌بندی

تابع ()GETDATE یکی از پرکاربردترین توابع تاریخ و زمان در SQL Server است که تاریخ و ساعت فعلی سرور را برمی‌گرداند.
این تابع در ثبت رکوردها، مدیریت سفارشات، گزارش‌گیری، ثبت لاگ، محاسبه بازه‌های زمانی و بسیاری از عملیات روزمره پایگاه داده کاربرد دارد.
استفاده از GETDATE در کنار توابعی مانند DATEADD، DATEDIFF، YEAR، MONTH و DAY امکانات قدرتمندی برای کار با تاریخ و زمان فراهم می‌کند.
آشنایی کامل با این تابع برای هر توسعه‌دهنده SQL Server ضروری است، زیرا در اغلب پروژه‌های واقعی به شکل گسترده مورد استفاده قرار می‌گیرد.

محصولات مرتبط

کاربران ما

شما هم نظرتون با ما دریاره “عملکرد تابع ()GETDATE در SQL Server و موارد استفاده از آن” اشتراک بزارید

برای ارسال نظر لطفا ورود یا ثبت نام کنید

منو