MySQL NOW() এবং SYSDATE() ফাংশন উভয়ই বর্তমান টাইমস্ট্যাম্প মান ফেরত দেয়। কিন্তু উভয়ের আউটপুট এক্সিকিউশন টাইমের ওপর নির্ভর করে। এটিই তাদের মধ্যে বড় পার্থক্য সৃষ্টি করে।
NOW() ফাংশন একটি স্থির সময় ফেরত দেয় যা নির্দেশ করে যে নির্দিষ্ট স্টেটমেন্টটি কখন এক্সিকিউট হতে শুরু করেছিল। অন্যদিকে, SYSDATE() ফাংশন স্টেটমেন্ট এক্সিকিউট হওয়ার আসল সময় ফেরত দেয়। নিচের উদাহরণটি এই ফাংশনগুলোর পার্থক্য দেখাবে −
mysql> Select NOW(), SLEEP(5), NOW(); +---------------------+----------+---------------------+ | NOW() | SLEEP(5) | NOW() | +---------------------+----------+---------------------+ | 2017-10-31 09:57:36 | 0 | 2017-10-31 09:57:36 | +---------------------+----------+---------------------+ 1 row in set (5.11 sec)
উপরোক্ত কোয়ারিটি দেখায় NOW() ফাংশন এক্সিকিউশন শুরু হওয়ার সময় ফেরত দেয় কারণ ৫ সেকেন্ড সিস্টেম স্লিপের পরেও এটি একই মান ফেরত দেয়।
mysql> Select SYSDATE(), SLEEP(5), SYSDATE(); +---------------------+----------+---------------------+ | SYSDATE() | SLEEP(5) | SYSDATE() | +---------------------+----------+---------------------+ | 2017-10-31 09:58:13 | 0 | 2017-10-31 09:58:18 | +---------------------+----------+---------------------+ 1 row in set (5.00 sec)
তুলনায়, উপরের কোয়ারিটি দেখায় SYSDATE() ফাংশন এক্সিকিউশন হওয়ার সময় ফেরত দেয় কারণ ৫ সেকেন্ড সিস্টেম স্লিপের পর এটি ৫ সেকেন্ড বেড়ানো মান ফেরত দেয়।