MySQL NOW() ක්‍රියාකාරකම පැහැදිලි කිරීම: වක්‍රරචනය, උදාහරණ, සහ SYSDATE() සමඟ වෙනස්කම්

1. MySQL NOW() ක්‍රියාකාරකමේ සමාලෝචනය

MySQL NOW() ක්‍රියාකාරකම භාවිතා කරමින් දත්ත ගබඩාව තුළ වත්මන් දිනය සහ වේලාව පහසුවෙන් ලබා ගත හැක. NOW() ක්‍රියාකාරකම භාවිතා කිරීමෙන්, දත්ත ඇතුළත් කරන විට ටයිම්ස්ටැම්ප් ලබා ගත හැකි අතර, ලොග් කිරීම සඳහා අවශ්‍ය වේලාව තොරතුරු ලබා ගත හැක. සරල වුවද, එය පුළුල් ලෙස භාවිතා වන ඉතා බලවත් මෙවලමකි.

NOW() ක්‍රියාකාරකමේ මූලික ව්‍යවස්ථාව

NOW() ක්‍රියාකාරකමේ ව්‍යවස්ථාව ඉතා සරලයි. පහත ප්‍රශ්නය භාවිතා කර වත්මන් දිනය සහ වේලාව ලබා ගත හැක.

SELECT NOW();

ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය YYYY-MM-DD HH:MM:SS ආකාරයෙන් ලබා දේ. උදාහරණයක් ලෙස, 2024 ඔක්තෝබර් 24 දින 16:30 වේලාවේ දිනය සහ වේලාව නම්, ප්‍රතිඵලය පහත පරිදි වේ.

2024-10-24 16:30:00

NOW() ක්‍රියාකාරකම දත්ත ගබඩාවේ වේලා කලාපය මත පදනම්ව වත්මන් දිනය සහ වේලාව ලබා දේ. මෙය පද්ධතිය පුරා සමගාමී වේලා කළමනාකරණය සලස්වයි.

NOW() ක්‍රියාකාරකමේ සාමාන්‍ය භාවිතා අවස්ථා

NOW() ක්‍රියාකාරකම පහත සඳහන් අවස්ථා වල විශේෂයෙන් ප්‍රයෝජනවත් වේ.

  • ලොග් කිරීම : දත්ත සංස්කරණය හෝ ඇතුළත් කිරීමේ වේලාව ස්වයංක්‍රීයව රෙකෝඩ් කරයි.
  • ටයිම්ස්ටැම්ප් : පරිශීලක ක්‍රියාකාරකම් වල වේලාව රෙකෝඩ් කිරීමට භාවිතා වේ.
  • වේලාව-නිර্ভරිත පෙරහන් : නියමිත කාල පරාසයක් තුළ සිදු වූ දත්ත ලබා ගැනීමට උපකාරී වේ.

2. NOW() ක්‍රියාකාරකමේ මූලික භාවිතා උදාහරණ

NOW() ක්‍රියාකාරකම භාවිතා කර වත්මන් දිනය සහ වේලාව ලබා ගැනීමේ මූලික උදාහරණ බලමු.

SELECT NOW();

මෙම ප්‍රශ්නය වත්මන් දිනය සහ වේලාව ලබා දේ. එය 문자열යක් ලෙස ලබා ගැනීමට අමතරව, සංඛ්‍යාත්මක ආකාරයෙන්ද ලබා ගත හැක. පහත ප්‍රශ්නය භාවිතා කිරීමෙන්, වත්මන් දිනය සහ වේලාව සංඛ්‍යාත්මක ආකාරයෙන් (YYYYMMDDHHMMSS) ලබා දේ.

SELECT NOW() + 0;

උදාහරණයක් ලෙස, ප්‍රතිඵලය “20241024163000” ලෙස ලබා ගත හැකි අතර, සංඛ්‍යාත්මකව මෙය භාවිතා කිරීම පහසු වේ.

භාගික තත්පර නිරවද්‍යතාවය නියම කිරීම

NOW() ක්‍රියාකාරකම භාගික තත්පර නිරවද්‍යතාවය (fractional seconds precision) නියම කිරීමට ඉඩ සලසයි. පහත පරිදි පරාමිතියක් ලබා දී නිරවද්‍යතාවය සකස් කළ හැක.

SELECT NOW(3);

මෙම ප්‍රශ්නය මිලි තත්පර නිරවද්‍යතාවය (දශම ලක්ෂණය පසු තුන් අංක) සමඟ ප්‍රතිඵලය ලබා දේ. උදාහරණයක් ලෙස, “2024-10-24 16:30:00.123” වැනි අගයක් ලබා ගත හැක. මෙම විශේෂාංගය තත්පර-මට්ටමේ නිරවද්‍යතාවය අවශ්‍ය පද්ධති සඳහා ඉතා ප්‍රයෝජනවත් වේ.

3. SYSDATE() සහ NOW() අතර වෙනස

NOW() සමඟ සමාන ක්‍රියාකාරකමක් වන SYSDATE() ඇත, නමුත් ඒවායේ හැසිරීම කුඩා වෙනසක් ඇත.

  • NOW() : ප්‍රශ්නය ක්‍රියාත්මක කිරීමේ ආරම්භයේ වේලාව ලබා ගනී හා සම්පූර්ණ ප්‍රකාශය පුරා ඒම අගය තබා ගනී. ගනුදෙනුව දිගු කාලයක් පවත්නා පසුද, ඒම ප්‍රතිඵලය ලබා දේ.
  • SYSDATE() : ප්‍රශ්නයේ සෑම පියවරකම වත්මන් වේලාව ලබා ගනී. එනම්, දිගු කාල ගනුදෙනු අතරද, සැබෑ-කාල වත්මන් වේලාව ලබා දේ.

උදාහරණයක් ලෙස, දිගු කාල බැච් ප්‍රොසෙස් වල SYSDATE() වඩා නිවැරදි සැබෑ-කාල ප්‍රතිඵල ලබා දිය හැක. නමුත් ගනුදෙනු සමගාමීතාව වැදගත් වන අවස්ථා වල NOW() සාමාන්‍යයෙන් නිර්දේශ කරයි.

ප්‍රශ්නයක් තුළ වෙනස පෙන්වන උදාහරණ

SYSDATE() සහ NOW() අතර හැසිරීමේ වෙනස පෙන්වන පහත ප්‍රශ්නය බලන්න.

SELECT NOW(), SYSDATE();

ප්‍රතිඵලය මෙසේ පෙනේ.

NOW():     2024-10-24 16:30:00
SYSDATE(): 2024-10-24 16:30:01

ප්‍රශ්නය ක්‍රියාත්මක කරන මොහොතේ SYSDATE() හි වේලාව වෙනස පෙන්වයි, එතැන්දී NOW() ප්‍රශ්නය ආරම්භ වූ වේලාව තබා ගනී. මෙම වෙනස සුළු වුවද, භාවිතා අවස්ථාව අනුව සුදුසු ක්‍රියාකාරකම තේරීම වැදගත් වේ.

4. NOW() ක්‍රියාකාරකමේ ප්‍රායෝගික යෙදුම්

NOW() ක්‍රියාකාරකම විශේෂිත අවස්ථා වල ඉතා ප්‍රයෝජනවත් වේ. උදාහරණයක් ලෙස, දත්ත ඇතුළත් කරන විට දිනය සහ වේලාව ස්වයංක්‍රීයව රෙකෝඩ් කිරීමට, පහත පරිදි NOW() ක්‍රියාකාරකම භාවිතා කළ හැක.

INSERT INTO users (username, created_at) 
VALUES ('example_user', NOW());

This automatically records the current time in the created_at column when the record is inserted. This feature is especially valuable for logging and event tracking.

අමතරව, පසුගිය සතියේ (දින 7) තුළ නිර්මාණය වූ දත්ත ලබා ගැනීමට අවශ්‍ය නම්, පහත පරිදි NOW() ක්‍රියාවලිය භාවිතා කළ හැක.

SELECT * FROM orders
WHERE order_date >= NOW() - INTERVAL 7 DAY;

මෙම විමසුම වත්මන් දිනය සහ වේලාවෙන් පසුගිය සතියේ (දින 7) තුළ නිර්මාණය වූ සියලු ලේඛන ලබා ගනී. NOW() ක්‍රියාවලිය කාල-අවලම්බී දත්ත උපුටා ගැනීමට ඉතා ප්‍රභාවී වේ.

5. NOW() ක්‍රියාවලිය භාවිතා කිරීමේදී සැලකිලිමත් විය යුතු වැදගත් කරුණු

NOW() ක්‍රියාවලිය භාවිතා කරන විට සැලකිලිමත් විය යුතු කිහිපයක් ඇත. විශේෂයෙන්, එය ගනුදෙනු සම්මතතාවයට බලපා හැකි බැවින්, පරිසරය අනුව එය සුදුසු ලෙස භාවිතා කිරීම වැදගත් වේ.

  • ගනුදෙනු තුළ හැසිරීම : NOW() ක්‍රියාවලිය ගනුදෙනුවක් තුළ සමාන ප්‍රතිඵලයක් ලබා දේ, එනම් දිගු කාලීන ක්‍රියාවලීන් අතරත් එකම කාල-මොහොත ලබා දේ. මෙය දත්ත සම්මතතාවය රැක ගැනීමට වැදගත් වේ. කෙසේ වෙතත්, වත්මන් කාල-මොහොත අවශ්‍ය නම්, SYSDATE() භාවිතා කිරීම වඩාත් සුදුසු වේ.

අමතරව, NOW() ක්‍රියාවලිය කාල කලාප සැකසුමට පදනම් වූ බැවින්, පද්ධති වින්‍යාසය අනුව වෙනස් ප්‍රතිඵල ලබා දිය හැක. ගෝලීය යෙදුම් වල, කාල කලාප සැලකිල්ල සමඟ නිර්මාණය කිරීම අත්‍යවශ්‍ය වේ.