1. Pangkalahatang-ideya ng MySQL NOW() Function
Ang MySQL NOW() function ay ginagamit upang madaling makuha ang kasalukuyang petsa at oras sa loob ng database. Sa pamamagitan ng paggamit ng NOW(), maaari kang makakuha ng impormasyong timestamp na kapaki-pakinabang para sa pagpasok ng o pag-log. Sa kabila ng pagiging simple nito, ito ay isang makapangyarihang kasangkapan na malawakang ginagamit sa praktika.
Pangunahing Sintaks ng NOW()
Ang sintaks ng NOW() function ay napakasimple. Ang sumusunod na query ay kumukuha ng kasalukuyang petsa at oras:
SELECT NOW();
Ang resulta ay ibinabalik sa format na YYYY-MM-DD HH:MM:SS. Halimbawa, kung ang petsa at oras ay Oktubre 24, 2024, alas 16:30, ang resulta ay:
2024-10-24 16:30:00
Dagdag pa, ang NOW() function ay nagbabalik ng kasalukuyang petsa at oras batay sa time zone ng database. Tinitiyak nito ang pare-parehong pamamahala ng oras sa buong sistema.
Mga Halimbawa ng Paggamit ng NOW()
- Pag-log : Awtomatikong itala ang oras ng mga pagbabago o pagpasok ng data.
- Mga Timestamp : Subaybayan ang oras ng mga aksyon ng gumagamit.
- Pag-filter batay sa Oras : Kunin ang data na naganap sa loob ng isang tiyak na panahon.

2. Mga Pangunahing Halimbawa ng Paggamit ng NOW()
Tingnan natin ang isang pangunahing halimbawa ng pagkuha ng kasalukuyang petsa at oras gamit ang NOW() function:
SELECT NOW();
Ang query na ito ay nagbabalik ng kasalukuyang petsa at oras. Bukod sa string format, maaari mo ring makuha ang resulta sa numeric format. Sa pamamagitan ng sumusunod na query, ang petsa at oras ay ibinabalik sa numeric format (YYYYMMDDHHMMSS):
SELECT NOW() + 0;
Halimbawa, ang resulta ay maaaring ibalik bilang 20241024163000, na kapaki-pakinabang kapag humahawak ng data sa numeric format.
Pagtatakda ng Fractional Seconds Precision
Pinapayagan ka ng NOW() function na tukuyin ang fractional seconds precision. Maaari mong itakda ang precision bilang isang argumento:
SELECT NOW(3);
Ang query na ito ay nagbabalik ng resulta na may tatlong digit ng fractional seconds precision, tulad ng 2024-10-24 16:30:00.123. Ang tampok na ito ay lalong kapaki-pakinabang sa mga sistema na nangangailangan ng sub-second na katumpakan.
3. Pagkakaiba sa pagitan ng SYSDATE() at NOW()
Isa pang function na katulad ng NOW() ay ang SYSDATE(), ngunit bahagyang magkaiba ang kanilang pag-uugali:
- NOW() : Kinukuha ang oras sa oras ng pag-execute ng query at pinapanatili ang parehong oras sa buong pahayag. Kahit na tumagal nang matagal ang transaksyon, ibinabalik nito ang parehong resulta.
- SYSDATE() : Kinukuha ang kasalukuyang oras sa bawat hakbang ng query. Ibig sabihin, sa mga matagal na transaksyon, nagbibigay ito ng real-time na timestamps.
Halimbawa, sa mga matagal na batch process, ang SYSDATE() ay nagbibigay ng mas tumpak na resulta, habang ang NOW() ay mas pinipili kapag kinakailangan ang pagkakakonsistente ng transaksyon.
Halimbawa ng Pagkakaiba sa Loob ng Isang Query
Narito ang isang halimbawa ng query na nagpapakita ng pagkakaiba sa pagitan ng SYSDATE() at NOW():
SELECT NOW(), SYSDATE();
Ang mga resulta ay maaaring magmukhang ganito:
NOW(): 2024-10-24 16:30:00
SYSDATE(): 2024-10-24 16:30:01
Ang SYSDATE() ay nagpapakita ng real-time na pagkakaiba sa pag-execute, habang ang NOW() ay pinapanatili ang timestamp mula sa simula ng query. Ang pagpili ng tamang function ay nakadepende sa iyong paggamit.

4. Praktikal na Mga Halimbawa ng Paggamit ng NOW()
Ang NOW() function ay lubos na kapaki-pakinabang sa mga tiyak na sitwasyon. Halimbawa, upang awtomatikong itala ang oras ng pagpasok ng data:
INSERT INTO users (username, created_at)
VALUES ('example_user', NOW());
Awtomatikong sine-save nito ang kasalukuyang oras sa column na created_at kapag naipasok ang rekord. Ito ay lalong mahalaga para sa pag-log o pagsubaybay ng mga pangyayari.
Upang kunin ang data na nilikha sa nakaraang 7 araw, maaari mong gamitin ang NOW() tulad ng sumus:
SELECT * FROM orders
WHERE order_date >= NOW() - INTERVAL 7 DAY;
Ang query na ito ay kumukuha ng lahat ng rekord na nilikha sa huling 7 araw batay sa kasalukuyang oras. Ang NOW() ay lubos na epektibo para sa pagkuha ng data na nakadepende sa oras.
5. Mga Isinasaalang-alang sa Paggamit ng NOW()
May ilang mahahalagang konsiderasyon kapag gumagamit ng NOW(). Lalo na, maaaring makaapekto ito sa pagkakakonsistente ng transaksyon, kaya dapat mong isaalang‑alang ang konteksto kung saan ito ginagamit.
- Pag-uugali sa Loob ng mga Transaksyon : Ang function na NOW() ay nagbabalik ng pare‑parehong resulta sa loob ng isang transaksyon, tinitiyak ang parehong oras kahit sa mga matagal na proseso. Mahalaga ito para mapanatili ang integridad ng data. Gayunpaman, kung kailangan mo ng real‑time na timestamp, mas angkop ang SYSDATE().
Tandaan din na ang function na NOW() ay nakadepende sa time zone ng sistema, na nangangahulugang maaaring mag‑iba ang mga resulta depende sa mga setting. Para sa mga global na aplikasyon, dapat itong isaalang‑alang nang mabuti sa disenyo.


