MySQL දිනය සහ වේලාව මාර්ගෝපදේශය: දත්ත වර්ග, ක්‍රියා, ආකෘතිකරණය, සහ පරාස විමසුම්

目次

1. හැඳින්වීම

MySQL යනු වෙබ් යෙදුම් සහ දත්ත ගබඩා නිර්මාණය සඳහා පුළුල් ලෙස භාවිතා වන දත්ත ගබඩා කළමනාකරණ පද්ධතියකි, සහ දිනයේ දත්ත නිවැරදිව හසුරවීම විශේෂයෙන් වැදගත් වේ. උදාහරණයක් ලෙස, දිනය‑සම්බන්ධ දත්ත බොහෝ අවස්ථා වල පෙනේ: බ්ලොග් ලිපි කළමනාකරණය, නිෂ්පාදන විකුණුම් ඉතිහාසය පසුබැසීම, සහ පරිශීලක ලොග්ඉන් ඉතිහාසය සුරැකීම. දිනයේ දත්ත නිවැරදිව කළමනාකරණය කිරීමෙන්, ඔබට දත්ත කාර්යක්ෂමව සැකසීමට සහ පරිශීලකයන්ට නිවැරදි තොරතුරු ලබා දීමට හැකිය.

මෙම මාර්ගෝපදේශයේ, අපි MySQL හි මූලික දිනය/කාල දත්ත වර්ග සහ දිනයේ ක්‍රියාකාරකම් භාවිතා කිරීමේ සිට දිනය‑අධාරිත ගණනය සහ පරාස විමසුම් දක්වා සියල්ල සවිස්තරාත්මකව පැහැදිලි කරමු. මෙම අන්තර්ගතය ආරම්භකයන් සිට මධ්‍යම පරිශීලකයන් සඳහා නිර්මාණය කර ඇත, සහ අපි වාස්තුකාලීන භාවිතා නිරූපණයන් මත පදනම් වූ ප්‍රායෝගික විමසුම් උදාහරණ ඇතුළත් කරමු—එය දිනපතා වැඩ සඳහා ප්‍රයෝජනවත් වේ.

මෙම ලිපිය කියවීමෙන්, ඔබට පහත කරුණු සිදු කළ හැක:

  • MySQL දිනය/කාල දත්ත වර්ගවල ලක්ෂණ තේරුම් ගනිමින්, ඔබේ දත්ත සඳහා සුදුසු වර්ගය තෝරන්න.
  • දැනට ඇති දිනය, පසුගිය දිනයන්, සහ අනාගත දිනයන් පහසුවෙන් ලබා ගැනීමට සහ සංස්කරණය කිරීමට දිනයේ ක්‍රියාකාරකම් භාවිතා කරන්න.
  • දිනය පරාස සෙවීම් සහ සැසඳීම් සිදු කරමින්, විශේෂිත කාල පරාස සඳහා දත්ත ලබා ගන්න.

දැන්, ඊළඟ කොටසෙන් MySQL දිනයන්ගේ මූලික කරුණු බලමු.

2. MySQL දිනය/කාල දත්ත වර්ගයන්ගේ සමාලෝචනය

MySQL හි දිනයන් කළමනාකරණය කරන විට, දත්ත සහ භාවිතා නිරූපණය අනුව නිවැරදි දිනය/කාල දත්ත වර්ගය තෝරා ගැනීම වැදගත් වේ. MySQL දිනයන් සහ කාලයන් හසුරවීමට බහු වර්ග දත්ත වර්ග ලබා දේ, ඒවායේ වෙනස් ලක්ෂණ සහ භාවිතා පරිදි. මෙම කොටසේ, අපි ප්‍රධාන දිනය/කාල වර්ග සහ ඒවායේ සාමාන්‍ය භාවිතා නිරූපණයන් විස්තරාත්මකව පැහැදිලි කරමු.

DATE

DATE වර්ගය දිනය (අවුරුදු, මාසය, දිනය) පමණක් සුරකි며 කාල අංගයක් ඇතුළත් නොවේ. සහාය දක්වන පරාසය “1000-01-01” සිට “9999-12-31” දක්වා වන අතර, එය අවුරුදු 1000 සිට 9999 දක්වා දිනයන් හසුරවිය හැක. කාලය අදාළ නොවන දිනය‑පමණ තොරතුරු සඳහා, උදාහරණයක් ලෙස උපන්දිනයන් හෝ සංවත්සරයන් සඳහා, මෙය සුදුසු වේ.

CREATE TABLE users (
    id INT,
    name VARCHAR(50),
    birth_date DATE
);

TIME

TIME වර්ගය කාලය (පැය, මිනිත්තු, තත්පර) සුරකියි. සහාය දක්වන පරාසය “-838:59:59” සිට “838:59:59” දක්වා වේ. එය ඍණ කාලයන් නිරූපණය කළ හැකි බැවින්, කාල වෙනස්කම් ප්‍රකාශ කිරීමටද භාවිතා කළ හැක. මෙය වැඩ කරන පැය හෝ කාර්ය කාලයන් සටහන් කිරීමට ප්‍රයෝජනවත් වේ.

CREATE TABLE work_log (
    id INT,
    task_name VARCHAR(50),
    duration TIME
);

DATETIME

DATETIME වර්ගය දිනය සහ කාලය දෙකම සුරකියි. සහාය දක්වන පරාසය “1000-01-01 00:00:00” සිට “9999-12-31 23:59:59” දක්වා වේ. එය කාල කලාපයන්ට පදනම් නොවෙයි, සහ ඔබට සුරකින ලද අගය සුරැකි පරිදිම ලබා ගත හැක. මෙය පසුගිය සිදුවීම් හෝ අනාගත කාලසටහන් සඳහා කාල මුද්‍රා සටහන් කිරීමට සුදුසු වේ.

CREATE TABLE appointments (
    id INT,
    description VARCHAR(50),
    appointment_datetime DATETIME
);

TIMESTAMP

TIMESTAMP වර්ගය දිනය සහ කාලය සුරකි며, සේවාදායක කාල කලාපය අනුව අගයන් ස්වයංක්‍රීයව පරිවර්තනය කරයි. සහාය දක්වන පරාසය “1970-01-01 00:00:01 UTC” සිට “2038-01-19 03:14:07 UTC” දක්වා වේ. එය Unix epoch කාලයට අනුකූල වන අතර, කාල මුද්‍රා සහ වෙනස්කම් ඉතිහාස සටහන් කිරීමට සුදුසු වේ. තවද, TIMESTAMP මූලිකව වත්මන් කාලය සකස් කළ හැකි බැවින්, නිර්මාණ සහ යාවත්කාලීන කාලයන් ස්වයංක්‍රීයව සටහන් කිරීමට පහසු වේ.

CREATE TABLE posts (
    id INT,
    title VARCHAR(50),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

YEAR

YEAR වර්ගය අවුරුද්ද පමණක් සුරකියි. සහාය දක්වන පරාසය “1901” සිට “2155” දක්වා වේ. නිෂ්පාදන අවුරුද්ද හෝ ආරම්භක අවුරුද්ද වැනි විශේෂිත අවුරුද්දක් නිරූපණය කිරීමට මෙය ප්‍රයෝජනවත් වේ.

CREATE TABLE products (
    id INT,
    name VARCHAR(50),
    manufactured_year YEAR
);

එක් එක් දිනය/කාල වර්ගයේ සැසඳීම සහ භාවිතා නිරූපණයන්

Data TypeStored ValueRangeTypical Use Cases
DATEYear, month, day1000-01-01 ~ 9999-12-31Birthdays, anniversaries, etc.
TIMEHour, minute, second-838:59:59 ~ 838:59:59Working time, task duration
DATETIMEYear, month, day, hour, minute, second1000-01-01 00:00:00 ~ 9999-12-31 23:59:59Schedules, event timestamps
TIMESTAMPYear, month, day, hour, minute, second1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTCCreated/updated times, automatic tracking
YEARYear1901 ~ 2155Manufacturing year, founding year

සාරාංශය

MySQL දිනය/කාල දත්ත වර්ග තෝරා ගැනීම ඔබේ දත්ත වල ලක්ෂණ සහ ඔබ ඒවා භාවිතා කිරීමට සැලසුම් කරන ආකාරය මත පදනම් විය යුතුය. ඊළඟ කොටසෙහි, අපි DATETIME සහ TIMESTAMP අතර වෙනස්කම් පිළිබඳව වැඩි විස්තරයක් බලන්නෙමු, එය විශේෂයෙන්ම ගැලපීම පහසුය.

3. DATETIME සහ TIMESTAMP අතර වෙනස්කම්

MySQL හි දිනය සහ කාලය සමඟ වැඩ කරන විට, DATETIME සහ TIMESTAMP සාමාන්‍යයෙන් භාවිතා කරයි, නමුත් ඒ අතර වැදගත් වෙනස්කම් ඇත. දෙකම වසර, මාස, දිනය, පැය, මිනිත්තුව, තත්පරය සුරකින්නා වූ නමුත් කාල කලාපයන් හා ඒවා සුරැකිය හැකි කාල පරාසය පිළිබඳව වෙනස් වේ. ඔබේ භාවිතා අවස්ථාව අනුව තෝරා ගත යුතුය. මෙම කොටසෙහි, DATETIME සහ TIMESTAMP අතර වෙනස්කම් සහ ලක්ෂණ විස්තරාත්මකව පැහැදිලි කරමු.

DATETIME හි ලක්ෂණ

  • කාල කලාපයන්ට අනුබද්ධ නොවේ : DATETIME වර්ගය සේවාදායක කාල කලාප සැකසුමෙන් බලපෑමක් නොලැබේ. ඔබට සුරැකි අගය සුරැකි පරිදිම ලබා ගත හැක.
  • පරාසය : එය 1000-01-01 00:00:00 සිට 9999-12-31 23:59:59 දක්වා සහය දක්වයි.
  • භාවිතා අවස්ථා : නියමිත කාල කලාපයක් මත පදනම් නොවී සුරැකීමට අවශ්‍ය දත්ත සඳහා සුදුසුය, උදාහරණként ඉතිහාසික සිදුවීම් හෝ අනාගත කාලසටහන්.

උදාහරණය: සිදුවීමේ දිනය/කාලය සුරැකීම

උදාහරණként, ඔබ “විශ්ව” දිනය/කාල අගය එලෙසම තබා ගැනීමට අවශ්‍ය නම්, DATETIME හොඳ තේරීමකි. පහත උදාහරණය නියමිත දිනය සහ කාලයෙහි සිදුවීමක් සටහන් කරයි.

CREATE TABLE events (
    id INT,
    event_name VARCHAR(50),
    event_datetime DATETIME
);

මෙම වගුවේ, event_datetime හි සුරැකි දිනය/කාලය කාල කලාපයන්ගෙන් බලපෑමක් නොලැබේ, සහ අගය සුරැකි පරිදිම ලබා ගත හැක.

TIMESTAMP හි ලක්ෂණ

  • කාල කලාපයන්ට අනුබද්ධ : TIMESTAMP වර්ගය සේවාදායක කාල කලාපය මත පදනම්ව සුරැකි හා ලබා ගනී. විවිධ කාල කලාපයන්ගෙන් සේවාදායක අතර දත්ත ගෙන යන විට, ඒ අනුව පරිවර්තනය සිදු වේ.
  • පරාසය : එය 1970-01-01 00:00:01 UTC සිට 2038-01-19 03:14:07 UTC දක්වා (Unix කාල පරාසය මත පදනම්ව) සහය දක්වයි.
  • ස්වයංක්‍රීය යාවත්කාලීන සහය : DEFAULT CURRENT_TIMESTAMP සහ ON UPDATE CURRENT_TIMESTAMP භාවිතා කිරීමෙන්, MySQL දත්ත ඇතුළත් කිරීමේ හෝ යාවත්කාලීන කිරීමේදී වත්මන් ටයිම්ස්ටෑම්පය ස්වයංක්‍රීයව ලියා ගත හැක.
  • භාවිතා අවස්ථා : නිර්මාණ හෝ යාවත්කාලීන කාලය ස්වයංක්‍රීයව නිරීක්ෂණය කිරීම සඳහා සුදුසුය, උදාහරණként රෙකෝඩ් එකක් යාවත්කාලීන වන විට ටයිම්ස්ටෑම්පය වෙනස් වීමට අවශ්‍ය නම්.

උදාහරණය: ලිපි සඳහා නිර්මාණ සහ යාවත්කාලීන කාලයන් සුරැකීම

මෙම උදාහරණය TIMESTAMP හි ස්වයංක්‍රීය යාවත්කාලීන විශේෂාංගය භාවිතා කර බ්ලොග් ලිපි සඳහා නිර්මාණ සහ යාවත්කාලීන කාලයන් ලියා ගනී.

CREATE TABLE blog_posts (
    id INT,
    title VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

මෙම සැකසුම සමඟ, ලිපිය පළමු වරට නිර්මාණය වන විට created_at ලියා ගනී, සහ ලිපිය සංස්කරණය කරන සෑම වරක්ම updated_at ස්වයංක්‍රීයව යාවත්කාලීන වේ.

සැසඳුම් වගුව: DATETIME vs TIMESTAMP

FeatureDATETIMETIMESTAMP
Time zoneNot dependent on server time zoneDependent on server time zone
Range1000-01-01 00:00:00 ~ 9999-12-31 23:59:591970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC
Auto-updateNoneSupported via DEFAULT CURRENT_TIMESTAMP, etc.
Typical use casesStore fixed date/time valuesAuto-track created/updated times

තේරීමේ ක්‍රමය

  • කාල කලාප බලපෑම් අවශ්‍ය නොවේ නම් DATETIME තෝරන්න : උදාහරණként, ඔබට නියමිත රට/කලාපයක් සඳහා ස්ථිර ස්ථානීය කාලයක් ලෙස සිදුවීමේ කාලය සුරැකීමට අවශ්‍ය නම්, DATETIME සුදුසු වේ.
  • ස්වයංක්‍රීය යාවත්කාලීන හෝ කාල කලාප සැකසීම අවශ්‍ය නම් TIMESTAMP තෝරන්න : උදාහරණként, දත්ත ගබඩා පේළි යාවත්කාලීන වන විට ස්වයංක්‍රීයව ලියා ගැනීමට අවශ්‍ය නම්, TIMESTAMP පහසුය.

සාරාංශය

DATETIME සහ TIMESTAMP වෙනස් ලක්ෂණ ඇත. ඔබේ අරමුණට සුදුසු එක තෝරා ගැනීමෙන්, දිනය/කාල දත්ත වඩා කාර්යක්ෂමව කළමනාකරණය කළ හැක. ඊළඟ කොටසෙහි, MySQL හි අත්‍යවශ්‍ය දිනයේ ක්‍රියාකාරකම් පිළිබඳව බලමු.

4. MySQL දිනය/කාල ක්‍රියාකාරකම් මූලික

MySQL දිනය සහ කාලය සමඟ වැඩ කිරීමට බොහෝ ක්‍රියාකාරකම් ලබා දේ—වත්මන් දිනය/කාලය ලබා ගැනීම සිට අන්තරාල් එකතු කිරීම හෝ අඩු කිරීම දක්වා. මෙම ක්‍රියාකාරකම් දත්ත ගබඩා පරිපාලනය සහ විශ්ලේෂණයට ප්‍රයෝජනවත් වේ. මෙම කොටසෙහි, MySQL දිනය/කාල ක්‍රියාකාරකම් මූලික කරුණු සහ ඒවායේ සාමාන්‍ය භාවිතා අවස්ථා පැහැදිලි කරමු.

වත්මන් දිනය/කාලය ලබා ගැනීමට ක්‍රියාකාරකම්

MySQL හි වත්මන් දිනය සහ වේලාව ලබා ගැනීමට භාවිතා කරන සාමාන්‍ය ක්‍රියා 3ක් වන NOW(), CURDATE(), සහ CURTIME().

NOW()

NOW() ක්‍රියාවලිය වත්මන් දිනය සහ වේලාව YYYY-MM-DD HH:MM:SS ආකාරයෙන් ලබා දෙයි. ලොග් කිරීම සහ රෙකෝඩ් වලට කාල සළකුණක් එක් කිරීම සඳහා මෙය ප්‍රයෝජනවත් වේ.

SELECT NOW(); -- Get the current date and time

CURDATE()

CURDATE() ක්‍රියාවලිය වත්මන් දිනය YYYY-MM-DD ආකාරයෙන් ලබා දෙයි. මෙය වේලාව ඇතුළත් නොකරන බැවින්, ඔබට දිනය පමණක් අවශ්‍ය වන විට සුදුසුය.

SELECT CURDATE(); -- Get the current date

CURTIME()

CURTIME() ක්‍රියාවලිය වත්මන් වේලාව HH:MM:SS ආකාරයෙන් ලබා දෙයි. දිනය නොමැතිව වේලාව පමණක් අවශ්‍ය වන විට මෙය භාවිතා කරන්න.

SELECT CURTIME(); -- Get the current time

Functions to Add/Subtract Dates

දිනයකට අතුරුකාලයක් එකතු කිරීමට හෝ අඩු කිරීමට DATE_ADD() සහ DATE_SUB() භාවිතා කරන්න. මෙම ක්‍රියා භාවිතා කිරීමෙන් අනාගත හෝ ගත වූ දිනයන් ගණනය කිරීම පහසු වේ.

DATE_ADD()

DATE_ADD() ක්‍රියාවලිය නියමිත අතුරුකාලයක් දිනයකට එකතු කරයි. උදාහරණයක් ලෙස, 7 දින පසු හෝ 1 මාස පසු දිනය ලබා ගැනීමට මෙය ප්‍රයෝජනවත් වේ.

SELECT DATE_ADD('2023-01-01', INTERVAL 7 DAY); -- Returns 2023-01-08

DATE_SUB()

DATE_SUB() ක්‍රියාවලිය නියමිත අතුරුකාලයක් දිනයෙන් අඩු කරයි. ගත වූ දිනයන් ගණනය කිරීමට මෙය භාවිතා කරන්න.

SELECT DATE_SUB('2023-01-01', INTERVAL 1 MONTH); -- Returns 2022-12-01

Function to Calculate Date Differences

දින දෙකක් අතර වෙනස්කම ගණනය කිරීමට DATEDIFF() පහසුය. උදාහරණයක් ලෙස, නියමිත දිනයක සිට කී දින ගතවී ඇතිද, හෝ දෙදින අතර කී දින තිබේද යන ගණනය කළ හැක.

DATEDIFF()

DATEDIFF() ක්‍රියාවලිය දින දෙක අතර වෙනස්කම දින ගණනින් ලබා දෙයි. ආරම්භක දිනයෙන් අවසන් දිනය දක්වා දින ගණන තහවුරු කිරීමට මෙය ප්‍රයෝජනවත් වේ.

SELECT DATEDIFF('2023-01-10', '2023-01-01'); -- Returns 9

Other Useful Date Functions

MySQL අතිරේක ප්‍රයෝජනවත් දිනය ක්‍රියා ලබා දේ.

EXTRACT()

EXTRACT() ක්‍රියාවලිය දිනයකින් නියමිත කොටසක් (වසර, මාසය, දිනය ආදිය) ලබා ගනී. දිනයේ කොටසක් පමණක් අවශ්‍ය වන විට මෙය ප්‍රයෝජනවත් වේ.

SELECT EXTRACT(YEAR FROM '2023-01-01'); -- Extract year (2023)
SELECT EXTRACT(MONTH FROM '2023-01-01'); -- Extract month (1)
SELECT EXTRACT(DAY FROM '2023-01-01'); -- Extract day (1)

DATE_FORMAT()

DATE_FORMAT() ක්‍රියාවලිය දිනය නියමිත ආකාරයකින් පෙන්වයි. නියමිත ආකාරයකින් දිනයන් පෙන්වීමට (උදාහරණයක් ලෙස, ජපන්-ශෛලිය ආකාරය) මෙය ප්‍රයෝජනවත් වේ.

SELECT DATE_FORMAT('2023-01-01', '%Y-%m-%d'); -- Returns 2023-01-01

5. Date Formatting and Conversion Methods

MySQL හි, දිනයන් කෙසේ පෙන්විය යුතුද යන්න වඩා කියවීමට පහසු ආකාරයකට වෙනස් කළ හැක, හෝ දිනයේ ස්ට්‍රින්ග් දිනයේ වර්ගයට පරිවර්තනය කළ හැක. මෙය ඔබට පෙන්වීමේ ආකාරයන් සවිස්තරාත්මකව පාලනය කිරීමට සහ විවිධ ආකාරයේ ඇතුළත් කිරීම් තිබුණත් දත්ත ස්ථිරව කළමනාකරණය කිරීමට ඉඩ සලසයි. මෙම කොටසේ, දිනය පෙන්වීම සහ පරිවර්තනය සඳහා භාවිතා වන ප්‍රධාන ක්‍රියා පැහැදිලි කරමු.

Date Formatting with the DATE_FORMAT() Function

DATE_FORMAT() භාවිතා කරමින්, ඔබට දිනයේ අගයන් නියමිත ආකාරයකින් පෙන්විය හැක. මෙය සාමාන්‍ය ආකාරයට වෙනස් පෙන්වීමක් අවශ්‍ය වන විට, උදාහරණයක් ලෙස ජපන් “YYYY年MM月DD日” ආකාරය, විශේෂයෙන් ප්‍රයෝජනවත් වේ.

Format Options

DATE_FORMAT() සමඟ, පහත පරිදි ආකාර විකල්ප භාවිතා කළ හැක:

  • %Y : අංක 4ක වසර
  • %y : අංක 2ක වසර
  • %m : අංක 2ක මාසය (01–12)
  • %d : අංක 2ක දිනය (01–31)
  • %H : අංක 2ක පැය (00–23)
  • %i : අංක 2ක මිනිත්තුව (00–59)
  • %s : අංක 2ක තත්පරය (00–59)

Example Usage

උදාහරණයක් ලෙස, 2023-01-01 දිනය “2023年01月01日” ලෙස පෙන්වීමට, පහත පරිදි ලියන්න:

SELECT DATE_FORMAT('2023-01-01', '%Y年%m月%d日'); -- Returns 2023年01月01日

ඔබට දිනය සහ වේලාව ස්ලෑෂ් (/) සමඟද පෙන්විය හැක, උදාහරණයක් ලෙස “2023/01/01 12:30:45.”

SELECT DATE_FORMAT('2023-01-01 12:30:45', '%Y/%m/%d %H:%i:%s'); -- Returns 2023/01/01 12:30:45

STR_TO_DATE() භාවිතයෙන් විලේෂණයන් දින ගණන් වලට පරිවර්තනය කිරීම

STR_TO_DATE() ශක්තිය දින විලේෂණයක් MySQL දින වර්ගයකට පරිවර්තනය කරයි. උදාහරණයක් ලෙස, “2023年01月01日” වැනි විලේෂණයක් DATE වටිනාකමක් ලෙස සැලකීමට අවශ්‍ය වන විට එය උපකාරී වේ.

උදාහරණ භාවිතය

විලේෂණය “2023-01-01” DATE වටිනාකමකට පරිවර්තනය කිරීමට, පහත පරිදි ලියන්න:

SELECT STR_TO_DATE('2023-01-01', '%Y-%m-%d'); -- Returns 2023-01-01 as a DATE

ජපන් විලාසයේ විලේෂණයක් වන “2023年01月01日” දිනයකට පරිවර්තනය කිරීමට, සම්බන්ධ ආකෘතිය විශේෂණය කරන්න:

SELECT STR_TO_DATE('2023年01月01日', '%Y年%m月%d日'); -- Returns 2023-01-01 as a DATE

විවිධ ආකෘතිවලින් දින ගණන් පරිවර්තනය කිරීමේ උදාහරණ

ප්‍රායෝගික භාවිතයේදී, දින ආදාන ආකෘති විවිධ විය හැකි බැවින්, විවිධ ආකෘතිවලින් පරිවර්තනය කිරීමට අවශ්‍ය විය හැක. පහත දැක්වෙන්නේ කිහිපයක උදාහරණයි.

  1. “YYYY/MM/DD” “DATE” වටිනාකමකට පරිවර්තනය කිරීම
    SELECT STR_TO_DATE('2023/01/01', '%Y/%m/%d'); -- Returns 2023-01-01 as a DATE
    
  1. “MM-DD-YYYY” “DATE” වටිනාකමකට පරිවර්තනය කිරීම
    SELECT STR_TO_DATE('01-01-2023', '%m-%d-%Y'); -- Returns 2023-01-01 as a DATE
    

මෙලෙස, දත්ත විවිධ ආකෘතිවලින් ඇතුළත් කරන ලදහොත් පවා, ඒවා ඒකාබද්ධ දින ආකෘතියකින් අනුකූලව ගබඩා කර ගැනීමට සහ කළමනාකරණය කිරීමට ඔබට හැකිය.

DATE_FORMAT සහ STR_TO_DATE අතර වෙනස්කම්, සහ එක් එක්ක භාවිතා කළ යුතු විට

  • DATE_FORMAT() : පවතින දින වටිනාකම්වල ප්‍රදර්ශන ආකෘතිය වෙනස් කිරීමට භාවිතා වේ. වෙනස ප්‍රදර්ශනයට පමණක් බලපාන බැවින්, ගබඩා කර ඇති දත්ත තමයි වෙනස් නොවේ.
  • STR_TO_DATE() : දින විලේෂණයක් MySQL DATE හෝ DATETIME වටිනාකමකට පරිවර්තනය කිරීමට භාවිතා වේ. මෙය ගබඩා කර ඇති දත්ත වර්ගය වෙනස් කරයි සහ වෙනත් MySQL ශක්ති සහ විමර්ශන සමඟ දින ගණන් සැකසීම පහසු කරයි.

සාරාංශය

DATE_FORMAT() සහ STR_TO_DATE() භාවිතයෙන්, ඔබට දින දත්ත ප්‍රදර්ශනය කිරීමේ සහ ගබඩා කිරීමේ ආකාරය නම්‍යශීලීව කළමනාකරණය කළ හැක. මෙය පරිශීලක හෝ පද්ධති ආදාන නම්‍යශීලීව සැකසීමට හැකි වන අතර, අනුකූල දින කළමනාකරණය රඳවා තබයි. මීළඟ කොටසේදී, අපි දින ගණනයන් සහ සංසන්දනයන් පැහැදිලි කරන්නෙමු, සහ දින දත්ත භාවිතයෙන් කාල පරාස ගණනය කිරීම සහ සංසන්දනය කිරීම ගැන වැඩිදුරටත් බලමු.

6. දින ගණනයන් සහ සංසන්දනයන්

MySQL විසින් දින ගණනයන් සහ සංසන්දනයන් සඳහා පහසු ශක්ති කිහිපයක් සපයයි. මේවා නිශ්චිත කාල පරාස සඳහා දත්ත නිඛ්නෙත් කිරීම හෝ විශ්ලේෂණ සඳහා දින වෙනස්කම් ගණනය කිරීම හැකි කරයි. මෙම කොටසේදී, අපි දින ගණනයන් සහ සංසන්දනයන් සඳහා භාවිතා වන ප්‍රධාන ශක්ති හඳුන්වා දෙන්නෙමු, ඒවා භාවිතා කිරීමේ ආකාරය සමඟ.

දින වෙනස්කම් ගණනය කිරීමේ ශක්තිය: DATEDIFF()

DATEDIFF() ශක්තිය දින දෙක අතර වෙනස “දින” ලෙස ආපසු ලබා දෙයි. දින අතර ගතවූ දින පරීක්ෂා කිරීමට හෝ අතීත සිදුවීමකින් අද වන විට ගතවූ දින කීයදැයි තීරණය කිරීමට එය උපකාරී වේ.

උදාහරණ භාවිතය

උදාහරණයක් ලෙස, 2023 ජනවාරි 1 සිට 2023 ජනවාරි 10 දක්වා දින ගණන ගණනය කිරීමට, පහත පරිදි ලියන්න:

SELECT DATEDIFF('2023-01-10', '2023-01-01'); -- Returns 9

මෙම උදාහරණයේදී, ආරම්භක දිනය සිට අවසාන දිනය දක්වා වෙනස 9 දින වන බැවින්, ප්‍රතිඵලය 9 වේ.

TIMESTAMPDIFF() භාවිතයෙන් ඒකක අනුව වෙනස්කම් ගණනය කිරීම

TIMESTAMPDIFF() ශක්තිය දින හෝ දින-වේලාවන් දෙක අතර වෙනස විශේෂිත ඒකකයකින් (අවුරුදු, මාස, දින, පැය, මිනිත්තු, තත්පර) ගණනය කරයි. උදාහරණයක් ලෙස, “මාස” හෝ “පැය” වැනි වෙනස්කම් අවශ්‍ය පරිදි ගණනය කළ හැක.

උදාහරණ භාවිතය

  1. මාසක වෙනසක් ගණනය කිරීම
    SELECT TIMESTAMPDIFF(MONTH, '2022-01-01', '2023-01-01'); -- Returns 12
    
  1. පැයක වෙනසක් ගණනය කිරීම
    SELECT TIMESTAMPDIFF(HOUR, '2023-01-01 00:00:00', '2023-01-02 12:00:00'); -- Returns 36
    

දින සංසන්දනයන්

දින සංසන්දනයන් MySQL හි සම්මත සංසන්දන ශක්ති (<, >, <=, >=, =) භාවිතයෙන් සිදු කෙරේ. මෙය ඔබට නිශ්චිත කාල පරාසයක් තුළ දත්ත නිඛ්නෙත් කිරීමට හෝ අතීත/අනාගත දින තත්ත්වයන් ඇතුළත් කිරීමට හැකි කරයි.

උදාහරණ භාවිතය

උදාහරණයක් ලෙස, “2023 ජනවාරි 1 සිට හෝ පසුව” දත්ත නිඛ්නෙත් කිරීමට, පහත පරිදි ලියන්න:

SELECT * FROM events WHERE event_date >= '2023-01-01';

BETWEEN භාවිතයෙන් පරාසයක් විශේෂණය කිරීම

The BETWEEN මෙහෙයුම්කරු ඔබට දත්ත ලබා ගැනීමට දිනය පරාසයක් නියම කිරීමට ඉඩ දෙයි. ඔබට විශේෂිත කාල පරාසයක් තුළ වැටෙන ලේඛන ලබා ගැනීමට අවශ්‍ය වන විට මෙය ප්‍රයෝජනවත් වේ.

උදාහරණ භාවිතය

උදාහරණයක් ලෙස, 2023 ජනවාරි 1 සිට 2023 ජනවාරි 31 දක්වා දත්ත ලබා ගැනීමට, පහත පරිදි ලියන්න:

SELECT * FROM events WHERE event_date BETWEEN '2023-01-01' AND '2023-01-31';

ADDDATE() සහ SUBDATE() සමඟ දිනය ගණනය

ADDDATE() සහ SUBDATE() භාවිතා කර දිනයකට දින ගණනක් එකතු කිරීම හෝ අඩු කිරීම කළ හැක. මෙය අනාගත හෝ ගත වූ දිනයන් ගණනය කිරීමට පහසු වේ.

උදාහරණ භාවිතය

  1. දිනයකට දින 10 එකතු කරන්න
    SELECT ADDDATE('2023-01-01', 10); -- Returns 2023-01-11
    
  1. දිනයකින් දින 10 අඩු කරන්න
    SELECT SUBDATE('2023-01-01', 10); -- Returns 2022-12-22
    

සාරාංශය

MySQL දිනය ගණනය කිරීම සහ සැසඳීමේ විශේෂතා භාවිතා කිරීමෙන්, ඔබට විශේෂිත කාල පරාස සඳහා දත්ත කාර්යක්ෂමව ලබා ගත හැකි අතර කාල පරාස අනුව දත්ත විශ්ලේෂණය කළ හැක. ඊළඟ කොටසේ, “දිනය පරාස සෙවීම්” යන වැඩිදියුණු විෂයය පිළිබඳව වැඩි විස්තරයක් බලමු.