توابع تاریخ و زمان در SQL
مقدمه:
توابع تاریخ و زمان در SQL ابزاری قدرتمند برای کار با داده های تاریخ و زمان هستند. با استفاده از این توابع می توانید کارهایی مانند استخراج اطلاعات، اضافه کردن و کم کردن تاریخ و زمان، محاسبه اختلاف زمانی و تبدیل فرمت تاریخ و زمان را انجام دهید.
کاربردهای توابع تاریخ و زمان:
- استخراج اطلاعات: برای استخراج اطلاعات خاص از یک تاریخ یا زمان مانند سال، ماه، روز، ساعت، دقیقه و ثانیه.
- اضافه کردن و کم کردن تاریخ و زمان: برای اضافه کردن یا کم کردن مقدار مشخصی به تاریخ یا زمان.
- محاسبه اختلاف زمانی: برای محاسبه اختلاف زمانی بین دو تاریخ یا زمان.
- تبدیل فرمت تاریخ و زمان: برای تبدیل تاریخ و زمان از یک فرمت به فرمت دیگر.
انواع توابع تاریخ و زمان:
- CURRENT_DATE: تاریخ فعلی را برمی گرداند.
- CURRENT_TIME: زمان فعلی را برمی گرداند.
- CURRENT_TIMESTAMP: تاریخ و زمان فعلی را برمی گرداند.
- GETDATE: تاریخ و زمان فعلی را برمی گرداند.
- DATEADD: مقدار مشخصی را به تاریخ یا زمان اضافه می کند.
- DATEDIFF: اختلاف زمانی بین دو تاریخ یا زمان را محاسبه می کند.
- DATE_FORMAT: تاریخ و زمان را به فرمت مشخصی تبدیل می کند.
مثال:
فرض کنید می خواهیم سال و ماه را از یک تاریخ استخراج کنیم. می توانیم از کد زیر استفاده کنیم:
SELECT YEAR(date) AS 'سال', MONTH(date) AS 'ماه' FROM dates;
نکات مهم:
- توابع تاریخ و زمان برای کار با داده های تاریخ و زمان (DATE, DATETIME, TIMESTAMP) استفاده می شوند.
- برای استفاده از توابع تاریخ و زمان، باید نوع داده ستون مورد نظر را به درستی مشخص کنید.
- توابع تاریخ و زمان به تنظیمات منطقه ای سرور SQL شما حساس هستند.
مثال های اضافی:
- اضافه کردن ۱۰ روز به تاریخ:
SELECT DATEADD(dd, ۱۰, date) FROM dates;
- محاسبه اختلاف زمانی بین دو تاریخ:
SELECT DATEDIFF(dd, start_date, end_date) FROM dates;
- تبدیل تاریخ به فرمت YYYY-MM-DD:
SELECT DATE_FORMAT(date, '%Y-%m-%d') FROM dates;
مثال جامع توابع تاریخ و زمان در SQL
فرض کنید یک جدول به نام events
با ستون های زیر داریم:
id
(عدد صحیح): شناسه منحصر به فرد هر رویدادtitle
(رشته): عنوان رویدادstart_date
(تاریخ): تاریخ شروع رویدادend_date
(تاریخ): تاریخ پایان رویدادstart_time
(زمان): زمان شروع رویدادend_time
(زمان): زمان پایان رویداد
در ادامه چند مثال از کاربرد توابع تاریخ و زمان در این جدول ارائه می دهیم:
۱. استخراج سال و ماه و روز از تاریخ شروع رویداد:
SELECT YEAR(start_date) AS 'سال', MONTH(start_date) AS 'ماه', DAY(start_date) AS 'روز' FROM events;
۲. اضافه کردن ۳۰ دقیقه به زمان شروع رویداد:
SELECT DATEADD(mi, ۳۰, start_time) FROM events;
۳. محاسبه اختلاف زمانی بین تاریخ و زمان شروع و پایان رویداد:
SELECT DATEDIFF(dd, start_date, end_date) * ۲۴ + DATEDIFF(hh, start_time, end_time) AS 'مدت زمان رویداد (ساعت)' FROM events;
۴. تبدیل تاریخ شروع رویداد به فرمت YYYY-MM-DD:
SELECT DATE_FORMAT(start_date, '%Y-%m-%d') FROM events;
۵. یافتن رویدادهایی که در ماه جاری برگزار می شوند:
SELECT * FROM events WHERE MONTH(start_date) = MONTH(CURRENT_DATE);
۶. یافتن رویدادهایی که در روزهای آینده برگزار می شوند:
SELECT * FROM events WHERE start_date >= CURRENT_DATE;
۷. یافتن رویدادهایی که در بازه زمانی مشخصی برگزار می شوند:
SELECT * FROM events WHERE start_date BETWEEN '۲۰۲۴-۰۳-۰۸' AND '۲۰۲۴-۰۳-۱۵';
۸. محاسبه تعداد روزهای باقی مانده تا شروع رویداد:
SELECT DATEDIFF(dd, CURRENT_DATE, start_date) AS 'روزهای باقی مانده' FROM events;
۹. یافتن اولین و آخرین روز ماه:
SELECT MIN(start_date), MAX(start_date) FROM events WHERE MONTH(start_date) = MONTH(CURRENT_DATE);
۱۰. یافتن رویدادهایی که در یک روز خاص برگزار می شوند:
SELECT * FROM events WHERE DAY(start_date) = ۸;
با استفاده از توابع تاریخ و زمان و خلاقیت می توانید به اطلاعات مورد نیاز خود از داده های تاریخ و زمان دست پیدا کنید.
نکات مهم:
- توابع تاریخ و زمان برای کار با داده های تاریخ و زمان (DATE, DATETIME, TIMESTAMP) استفاده می شوند.
- برای استفاده از توابع تاریخ و زمان، باید نوع داده ستون مورد نظر را به درستی مشخص کنید.
- توابع تاریخ و زمان به تنظیمات منطقه ای سرور SQL شما حساس هستند.