MySQL বর্তমান টাইমস্ট্যাম্প: বর্তমান তারিখ ও সময় কীভাবে পাবেন (NOW, SYSDATE, UTC_TIMESTAMP)

目次

১. পরিচিতি

MySQL‑এ বর্তমান সময় পাওয়া ডেটাবেস ব্যবস্থাপনার একটি গুরুত্বপূর্ণ অংশ।
উদাহরণস্বরূপ, নিম্নলিখিত পরিস্থিতিতে আপনাকে বর্তমান সময় পুনরুদ্ধার করতে হতে পারে:

  • ডেটা সন্নিবেশের সময় স্বয়ংক্রিয়ভাবে একটি সৃষ্টির টাইমস্ট্যাম্প রেকর্ড করা (যেমন, নতুন ব্যবহারকারী সাইন‑আপ করলে একটি টাইমস্ট্যাম্প)
  • ব্যবহারকারীর লগইন সময় লগ করা (যেমন, লগইন ইতিহাস পরিচালনা)
  • নির্দিষ্ট সময়সীমার মধ্যে ডেটা পুনরুদ্ধার করা (যেমন, গত ২৪ ঘন্টার অর্ডার ইতিহাস আনা)
  • সিস্টেম এক্সিকিউশন লগ রেকর্ড করা (যেমন, ত্রুটি লগ এবং ইভেন্ট লগ পরিচালনা)

যেমনটি আপনি দেখতে পাচ্ছেন, ডেটা ব্যবস্থাপনা ও লগিংয়ের জন্য “বর্তমান সময়” সঠিকভাবে পুনরুদ্ধার করা ডেটাবেস চালানোর জন্য অপরিহার্য।

এই প্রবন্ধে, আমরা বাস্তব SQL কুয়েরি ব্যবহার করে MySQL‑এ বর্তমান সময় কীভাবে পাওয়া যায় তা বিশদভাবে ব্যাখ্যা করব।
এছাড়াও সাধারণত ব্যবহৃত ফাংশনগুলোর পার্থক্য, সঠিকটি কীভাবে নির্বাচন করবেন, এবং ব্যবহারিক কুয়েরি উদাহরণ—শুরু থেকে মধ্যম স্তরের ব্যবহারকারীদের জন্য উপকারী—এগুলোও কভার করব।

২. MySQL‑এ বর্তমান তারিখ/সময় পাওয়ার ফাংশন (তুলনা টেবিল)

MySQL বর্তমান সময় পুনরুদ্ধার করার জন্য একাধিক ফাংশন প্রদান করে।
আপনার ব্যবহারের ক্ষেত্রে সঠিক ফাংশন নির্বাচন করা গুরুত্বপূর্ণ, তবে অনেকেই এই পার্থক্যগুলোকে বিভ্রান্তিকর মনে করেন।

এই অংশে, আমরা MySQL‑এ বর্তমান তারিখ/সময় পাওয়ার প্রধান ফাংশনগুলো তুলনা করে তাদের বৈশিষ্ট্য বিশদভাবে ব্যাখ্যা করব।

২.১ MySQL সময় ফাংশনের তুলনা টেবিল

FunctionWhat it returnsFormatNotes
NOW()Current date and timeYYYY-MM-DD HH:MM:SSMost commonly used
SYSDATE()Date and time at executionYYYY-MM-DD HH:MM:SSUnlike NOW(), it can change on each execution
CURTIME()Current timeHH:MM:SSTime only (no date)
CURRENT_TIME()Current timeHH:MM:SSSame as CURTIME()
CURRENT_TIMESTAMP()Current date and timeYYYY-MM-DD HH:MM:SSAlmost the same as NOW()
UTC_TIMESTAMP()Current UTC date and timeYYYY-MM-DD HH:MM:SSTime zone is fixed to UTC

উপরের টেবিল থেকে দেখা যায়, বেশিরভাগ ফাংশন “বর্তমান তারিখ ও সময়” অথবা “বর্তমান সময়” ফেরত দেয়, তবে সেরা ফাংশনটি আপনার উদ্দেশ্যের উপর নির্ভর করে

২.২ প্রতিটি ফাংশনের সংক্ষিপ্ত বিবরণ ও বৈশিষ্ট্য

NOW() ফাংশন

  • বর্তমান তারিখ ও সময় পাওয়ার সবচেয়ে সাধারণ ফাংশন
  • SQL স্টেটমেন্ট শুরু হওয়ার মুহূর্তের সময় ফেরত দেয়
  • ডেটা সন্নিবেশ বা আপডেটের সময় টাইমস্ট্যাম্পের জন্য প্রায়ই ব্যবহার করা হয়
    SELECT NOW();
    

উদাহরণ আউটপুট

2025-02-14 15:30:45

SYSDATE() ফাংশন

  • এক্সিকিউশনের মুহূর্তে বর্তমান সময় পাওয়া যায়
  • NOW() এর বিপরীতে, SYSDATE() প্রতিবার মূল্যায়ন করা হলে ভিন্ন মান ফেরত দিতে পারে (একটি ট্রানজ্যাকশনের মধ্যে হলেও পরিবর্তন হতে পারে)
    SELECT SYSDATE();
    

উদাহরণ আউটপুট

2025-02-14 15:30:47

CURTIME() ফাংশন

  • শুধুমাত্র সময় (HH:MM:SS) পাওয়া যায়
  • যখন তারিখের প্রয়োজন নেই তখন ব্যবহারযোগ্য
    SELECT CURTIME();
    

উদাহরণ আউটপুট

15:30:45

CURRENT_TIME() ফাংশন

  • CURTIME() এর মতোই কাজ করে
  • SQL মানদণ্ডের সাথে সামঞ্জস্যপূর্ণ ফাংশন নাম
    SELECT CURRENT_TIME();
    

উদাহরণ আউটপুট

15:30:45

CURRENT_TIMESTAMP() ফাংশন

  • NOW() এর মতোই আচরণ করে
  • কলাম DEFAULT মান হিসেবে নির্ধারণ করা যায় (ডিফল্টের জন্য NOW() এর চেয়ে প্রায়ই বেশি উপযুক্ত)
    SELECT CURRENT_TIMESTAMP();
    

উদাহরণ আউটপুট

2025-02-14 15:30:45

টেবিল তৈরি করার সময় ডিফল্ট মান হিসেবে সেট করা:

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

UTC_TIMESTAMP() ফাংশন

  • বর্তমান UTC (Coordinated Universal Time) পাওয়া যায়
  • সার্ভারের সময় অঞ্চল থেকে স্বাধীন, ফলে সঙ্গতিপূর্ণ টাইমস্ট্যাম্প নিশ্চিত হয়
    SELECT UTC_TIMESTAMP();
    

উদাহরণ আউটপুট

2025-02-14 06:30:45

২.৩ কোন ফাংশনটি ব্যবহার করবেন?

Use caseRecommended function
Get the current date and timeNOW()
Get a different timestamp each time within a transactionSYSDATE()
Need only the current time (HH:MM:SS)CURTIME() or CURRENT_TIME()
Set as a table default valueCURRENT_TIMESTAMP()
Get UTC timeUTC_TIMESTAMP()

সাধারণত, সাধারণ তারিখ/সময় পুনরুদ্ধারের জন্য NOW() অধিকাংশ ক্ষেত্রে সঠিক পছন্দ
তবে আপনার ব্যবহারের ক্ষেত্রে সেরা ফাংশনটি নির্বাচন করলে ডেটা অপারেশন আরও নমনীয় ও নির্ভরযোগ্য হয়।

৩. NOW() ফাংশনের বিশদ বিবরণ

MySQL‑এর NOW() ফাংশন বর্তমান তারিখ ও সময় (date + time) পাওয়ার জন্য সবচেয়ে বেশি ব্যবহৃত ফাংশন
এটি ডেটাবেসে টাইমস্ট্যাম্প সংরক্ষণ এবং নির্দিষ্ট সময়সীমার মধ্যে ডেটা পুনরুদ্ধারের জন্য ব্যাপকভাবে ব্যবহৃত হয়।

৩.১ NOW() এর মৌলিক ব্যবহার

NOW() এর সিনট্যাক্স

SELECT NOW();

উদাহরণ আউটপুট

2025-02-14 15:30:45
  • আউটপুট ফরম্যাট হল YYYY-MM-DD HH:MM:SS (বছর-মাস-দিন ঘন্টা:মিনিট:সেকেন্ড)।
  • সময়টি MySQL-এর ডিফল্ট টাইম জোন সেটিংসের ভিত্তিতে পুনরুদ্ধার করা হয়।

3.2 NOW() এর সাধারণ ব্যবহার ক্ষেত্রগুলি

① ডেটা সন্নিবেশের সময় বর্তমান সময় রেকর্ড করুন

ডেটা সন্নিবেশের সময়, আপনি NOW() ব্যবহার করে একটি ক্রিয়েশন টাইমস্ট্যাম্প রেকর্ড করতে পারেন।

INSERT INTO users (name, created_at) VALUES ('Sato', NOW());

② ডেটা আপডেটের সময় বর্তমান সময় রেকর্ড করুন

UPDATE users SET last_login = NOW() WHERE id = 1;

③ নির্দিষ্ট সময়সীমা থেকে ডেটা পুনরুদ্ধার করুন

SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 1 DAY;
  • INTERVAL 1 DAY নির্দিষ্ট করে, আপনি “গত ১ দিনের ডেটা” পুনরুদ্ধার করতে পারেন।

3.3 রিটার্ন টাইপ এবং আউটপুট ফরম্যাট কীভাবে পরিবর্তন করবেন

NOW() এর রিটার্ন টাইপ

  • DATETIME টাইপ (YYYY-MM-DD HH:MM:SS)
  • এটি স্ট্রিং হিসাবেও ব্যবহার করা যায়
    SELECT NOW(), typeof(NOW());
    

ফরম্যাট কীভাবে পরিবর্তন করবেন

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS formatted_time;

উদাহরণ আউটপুট

2025-02-14 15:30:45

3.4 NOW() এবং SYSDATE() এর পার্থক্য

FunctionWhen it’s evaluatedNotes
NOW()At query startReturns a fixed timestamp for the statement
SYSDATE()At execution timeCan return different timestamps within the same statement
SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();

উদাহরণ আউটপুট

NOW()        | SLEEP(3) | NOW()
2025-02-14 15:30:45 | wait 3 seconds | 2025-02-14 15:30:45
SYSDATE()    | SLEEP(3) | SYSDATE()
2025-02-14 15:30:45 | wait 3 seconds | 2025-02-14 15:30:48

🚨 যদি আপনি ট্রানজ্যাকশন নিয়ে কাজ করেন, তবে সামঞ্জস্যের জন্য NOW() সুপারিশ করা হয়।

3.5 NOW() এর সীমাবদ্ধতা এবং নোট

① টাইম জোনের উপর নির্ভরশীল

SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');

② টেবিলের ডিফল্ট মানের জন্য, CURRENT_TIMESTAMP ব্যবহার করুন

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

3.6 NOW() এর সারসংক্ষেপ

  • NOW() হল MySQL-এ বর্তমান তারিখ ও সময় পাওয়ার সবচেয়ে সাধারণ ফাংশন।
  • এটি ইনসার্ট, আপডেট এবং সময়-ভিত্তিক ডেটা পুনরুদ্ধারের জন্য ব্যবহার করা যায়।
  • একটি ট্রানজ্যাকশনের মধ্যে সামঞ্জস্যপূর্ণ টাইমস্ট্যাম্প প্রয়োজন হলে NOW() ব্যবহার করুন।
  • SYSDATE() প্রতিটি মূল্যায়নে ভিন্ন সময় প্রদান করে, তাই সঠিক এক্সিকিউশন সময় প্রয়োজন হলে এটি ব্যবহার করুন।
  • ভিন্ন টাইম জোনে সময় পুনরুদ্ধার করতে CONVERT_TZ() ব্যবহার করুন।

📌 উপসংহার: অধিকাংশ ক্ষেত্রে, MySQL-এ বর্তমান তারিখ ও সময় পাওয়ার জন্য NOW() সর্বোত্তম পছন্দ।

4. SYSDATE() ফাংশনের বৈশিষ্ট্য

SYSDATE() ফাংশনটি MySQL-এ বর্তমান তারিখ ও সময় পাওয়ার আরেকটি উপায়, তবে এটি NOW() থেকে ভিন্নভাবে কাজ করে।
এই অংশে, আমরা SYSDATE() এর মৌলিক ব্যবহার, এটি কীভাবে NOW() থেকে ভিন্ন, এবং গুরুত্বপূর্ণ নোটগুলি ব্যাখ্যা করব।

4.1 SYSDATE() কী?

SYSDATE() একটি ফাংশন যা বিবৃতি কার্যকর করার সময়ের সময় প্রদান করে
NOW() এর বিপরীতে, এটি প্রতিবার মূল্যায়ন করা হলে ভিন্ন টাইমস্ট্যাম্প প্রদান করে

SYSDATE() সিনট্যাক্স

SELECT SYSDATE();

উদাহরণ আউটপুট

2025-02-14 16:00:45
  • YYYY-MM-DD HH:MM:SS ফরম্যাটে রিটার্ন হয়
  • কোয়েরি কার্যকর করার মুহূর্ত নির্দেশ করে

4.2 SYSDATE() এবং NOW() এর পার্থক্য

FunctionWhen it’s evaluatedNotes
NOW()At query startReturns a fixed timestamp for the statement
SYSDATE()At execution timeReturns a different timestamp each time

আচরণ তুলনা: NOW() বনাম SYSDATE()

SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();

উদাহরণ আউটপুট

NOW()        | SLEEP(3) | NOW()
2025-02-14 16:00:45 | wait 3 seconds | 2025-02-14 16:00:45
SYSDATE()    | SLEEP(3) | SYSDATE()
2025-02-14 16:00:45 | wait 3 seconds | 2025-02-14 16:00:48

📌 মূল বিষয়গুলো

  • NOW() বিবৃতির শুরু থেকে টাইমস্ট্যাম্প বজায় রাখে, তাই এটি পরিবর্তন হয় না।
  • SYSDATE() প্রতিবার মূল্যায়ন করা হলে ভিন্ন টাইমস্ট্যাম্প প্রদান করে, তাই এটি ৩ সেকেন্ড পরে পরিবর্তিত হয়।

🚨 ট্রানজ্যাকশন প্রক্রিয়াকরণের জন্য NOW() ব্যবহার করুন

  • কারণ SYSDATE() মাল্টি-থ্রেডেড পরিবেশে NOW() থেকে ভিন্নভাবে আচরণ করতে পারে, ট্রানজ্যাকশনাল সামঞ্জস্যের জন্য সাধারণত NOW() সুপারিশ করা হয়

4.3 SYSDATE() ব্যবহার করার উদাহরণ

① ডেটা সন্নিবেশের সময় বর্তমান সময় রেকর্ড করুন

INSERT INTO logs (event, created_at) VALUES ('User login', SYSDATE());

② ডেটা আপডেটের সময় বর্তমান সময় রেকর্ড করুন

UPDATE users SET last_login = SYSDATE() WHERE id = 1;

③ নির্দিষ্ট ফরম্যাটে বর্তমান সময় পান

SELECT DATE_FORMAT(SYSDATE(), '%Y-%m-%d %H:%i:%s') AS formatted_time;

উদাহরণ আউটপুট

2025-02-14 16:05:30

4.4 SYSDATE() এর সীমাবদ্ধতা এবং নোটস

① লেনদেনের আচরণ

  • NOW() বিবৃতি শুরু থেকে টাইমস্ট্যাম্প বজায় রাখে, তাই এটি লেনদেনের মধ্যে ধারাবাহিকভাবে ব্যবহার করা যায়।
  • SYSDATE() প্রতিবার ভিন্ন টাইমস্ট্যাম্প ফেরত দেয়, ফলে লেনদেনের মধ্যে সময়ের বিচ্যুতি ঘটতে পারে।

② ডিফল্ট মান হিসেবে ব্যবহার করা যায় না

  • SYSDATE() টেবিল কলামের DEFAULT মান হিসেবে সেট করা যায় না

সমাধান: DEFAULT CURRENT_TIMESTAMP ব্যবহার করুন।

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4.5 কখন SYSDATE() ব্যবহার করবেন?

Use caseRecommended function
Typical current timestamp retrievalNOW()
Use a consistent timestamp within a transactionNOW()
Need the exact execution timeSYSDATE()

🚀 SYSDATE() রিয়েল-টাইম লগিংয়ের জন্য উপযুক্ত, তবে লেনদেন প্রক্রিয়াকরণের জন্য আদর্শ নয়।

4.6 SYSDATE() এর সারাংশ

  • SYSDATE() কার্যকর সময়ের টাইমস্ট্যাম্প পুনরুদ্ধার করে, NOW() এর বিপরীতে।
  • এটি প্রতিবার ভিন্ন মান ফেরত দিতে পারে, তাই রিয়েল-টাইম লগিংয়ের জন্য উপযোগী।
  • লেনদেনের সামঞ্জস্যের জন্য NOW() সুপারিশ করা হয়।
  • ডিফল্ট মানের জন্য CURRENT_TIMESTAMP ব্যবহার করুন।

📌 উপসংহার: সাধারণ টাইমস্ট্যাম্প পুনরুদ্ধারের জন্য NOW() সর্বোত্তম; সঠিক কার্যকর সময়ের জন্য SYSDATE() নির্বাচন করুন।

5. CURTIME() এবং CURRENT_TIME()

MySQL-এ বর্তমান সময় পেতে চাইলে, CURTIME() এবং CURRENT_TIME() ব্যবহার করা হয় যখন আপনাকে শুধুমাত্র সময় (HH:MM:SS) দরকার। এই অংশে, আমরা প্রতিটির মৌলিক ব্যবহার, পার্থক্য এবং ব্যবহারিক উদাহরণ ব্যাখ্যা করব।

5.1 CURTIME() কী?

CURTIME() হল MySQL-এ একটি ফাংশন যা বর্তমান সময় (ঘণ্টা, মিনিট, সেকেন্ড) পায়। এর মূল বৈশিষ্ট্য হল এতে তারিখ অন্তর্ভুক্ত থাকে না—শুধু সময়ের অংশই ফেরত দেয়

CURTIME() সিনট্যাক্স

SELECT CURTIME();

উদাহরণ আউটপুট

16:30:45
  • ফরম্যাট: HH:MM:SS
  • সার্ভারের সময় অঞ্চল সেটিংয়ের উপর নির্ভরশীল
  • NOW() এর বিপরীতে, যখন তারিখের তথ্য প্রয়োজন হয় না তখন এটি উপযুক্ত

5.2 CURRENT_TIME() কী?

CURRENT_TIME(), CURTIME() এর মতোই, একটি ফাংশন যা বর্তমান সময় (HH:MM:SS) পায়। বাস্তবে, এটি CURTIME() এর সঙ্গে ঠিক একইভাবে কাজ করে

CURRENT_TIME() সিনট্যাক্স

SELECT CURRENT_TIME();

উদাহরণ আউটপুট

16:30:45

📌 পার্থক্য কী?

  • CURTIME() MySQL-নির্দিষ্ট
  • CURRENT_TIME() SQL-স্ট্যান্ডার্ড
  • দুইটি একইভাবে কাজ করে
  • পঠনযোগ্যতার পছন্দ অনুযায়ী নির্বাচন করুন (কোনো পারফরম্যান্স পার্থক্য নেই)

5.3 CURTIME() বনাম CURRENT_TIME() (তুলনা)

FunctionWhat it returnsFormatNotes
CURTIME()Current time (hour/minute/second)HH:MM:SSMySQL-specific function
CURRENT_TIME()Current time (hour/minute/second)HH:MM:SSSQL-standard function

5.4 CURTIME() / CURRENT_TIME() এর ব্যবহারিক উদাহরণ

① ডেটা সন্নিবেশের সময় বর্তমান সময় রেকর্ড করুন

INSERT INTO user_logs (event, event_time) VALUES ('Login', CURTIME());

② ফিল্টারিং (নির্দিষ্ট সময়সীমার মধ্যে ডেটা পুনরুদ্ধার)

SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';

③ নির্ভুলতা পরিবর্তন (মিলিসেকেন্ড অন্তর্ভুক্ত করুন)

SELECT CURTIME(3);  -- Display up to 3 fractional digits

উদাহরণ আউটপুট

16:30:45.123

5.5 CURTIME() / CURRENT_TIME() এর সীমাবদ্ধতা এবং নোটস

① তারিখের তথ্য নেই, তাই প্রয়োজন হলে তারিখের সঙ্গে যুক্ত করুন

SELECT CONCAT(CURDATE(), ' ', CURTIME()) AS full_datetime;

② ডিফল্ট মান হিসেবে ব্যবহার করার সময়

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event_time TIME DEFAULT CURTIME()
);

5.6 কখন CURTIME() / CURRENT_TIME() ব্যবহার করবেন?

Use caseRecommended function
Need only the current time (hour/minute/second)CURTIME() or CURRENT_TIME()
Need current date and timeNOW()
Need millisecond precisionCURTIME(3)

📌 বেশিরভাগ ক্ষেত্রে, CURTIME() অথবা CURRENT_TIME() যেকোনোটি ব্যবহার করা যায়।
আপনি যেটি বেশি পাঠযোগ্য মনে করেন তা বেছে নিন.

5.7 CURTIME() / CURRENT_TIME() এর সারাংশ

  • CURTIME() হল MySQL-নির্দিষ্ট; CURRENT_TIME() হল SQL-মানদণ্ড
  • উভয়ই বর্তমান সময় (HH:MM:SS) পুনরুদ্ধার করে
  • ফরম্যাটিং/প্রিসিশন সামঞ্জস্য করতে CURTIME(3) অথবা DATE_FORMAT() ব্যবহার করুন
  • যদি তারিখ দরকার হয়, CURDATE() এর সঙ্গে যুক্ত করুন অথবা NOW() ব্যবহার করুন
  • ডিফল্টের জন্য সাধারণত CURRENT_TIMESTAMP ব্যবহার করা হয়

📌 উপসংহার: যদি শুধুমাত্র বর্তমান সময় দরকার হয়, তবে CURTIME() একটি দৃঢ় পছন্দ।

6. বর্তমান সময় ব্যবহার করে ব্যবহারিক কুয়েরি উদাহরণ

এখন আপনি MySQL-এ বর্তমান সময় কীভাবে পুনরুদ্ধার করবেন তা বুঝেছেন, চলুন এর ব্যবহারিক পদ্ধতিগুলি দেখি।
এই অংশে, আমরা বর্তমান সময় ব্যবহার করে বাস্তব জগতের কুয়েরি উদাহরণ উপস্থাপন করব।
আপনি ইনসার্ট, আপডেট এবং সার্চের মতো দৈনন্দিন ডেটাবেস কাজের জন্য উপযোগী কৌশল শিখবেন.

6.1 ডেটা ইনসার্ট করার সময় বর্তমান সময় রেকর্ড করুন

① ব্যবহারকারী রেজিস্টার করার সময় বর্তমান সময় রেকর্ড করুন

INSERT INTO users (name, email, created_at) 
VALUES ('Sato', 'sato@example.com', NOW());

6.2 ডেটা আপডেট করার সময় বর্তমান সময় রেকর্ড করুন

② ব্যবহারকারীর শেষ লগইন টাইমস্ট্যাম্প রেকর্ড করুন

UPDATE users SET last_login = NOW() WHERE id = 1;

6.3 অতীত N দিনের ডেটা পুনরুদ্ধার করুন

③ গত ৭ দিনের অর্ডার ডেটা পুনরুদ্ধার করুন

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

6.4 নির্দিষ্ট সময়সীমার মধ্যে তৈরি ডেটা পুনরুদ্ধার করুন

④ আজ ৯:০০ এএম থেকে ৬:০০ পিএম পর্যন্ত তৈরি ডেটা পুনরুদ্ধার করুন

SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';

6.5 সময় অঞ্চল বিবেচনা করে বর্তমান সময় পুনরুদ্ধার করুন

⑤ UTC সময়কে জাপান সময় (JST) এ রূপান্তর করুন

SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');

6.6 রেকর্ডের সৃষ্টির সময় ডিফল্টভাবে বর্তমান টাইমস্ট্যাম্পে সেট করুন

⑥ স্বয়ংক্রিয়ভাবে created_at কে বর্তমান টাইমস্ট্যাম্পে সেট করুন

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

6.7 নির্দিষ্ট সময়ের পরে ডেটা মুছে ফেলুন

⑦ ৩০ দিনের বেশি পুরনো ডেটা মুছে ফেলুন

DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;

6.8 মিলিসেকেন্ড (মাইক্রোসেকেন্ড) প্রিসিশন সহ বর্তমান সময় পান

⑧ মিলিসেকেন্ড প্রিসিশন সহ বর্তমান টাইমস্ট্যাম্প পান

SELECT NOW(3);

উদাহরণ আউটপুট

2025-02-14 16:30:45.123

6.9 ব্যবহার-কেস নির্বাচন গাইড

Use caseRecommended functionExample
Record the current time when inserting dataNOW()INSERT INTO users (name, created_at) VALUES ('Sato', NOW());
Record the current time when updating dataNOW()UPDATE users SET last_login = NOW() WHERE id = 1;
Retrieve data from the past N daysNOW() - INTERVAL X DAYSELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;
Retrieve data within a specific time rangeCURTIME()SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';
Convert UTC time to JSTCONVERT_TZ()SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');
Delete old data (older than 30 days)NOW() - INTERVAL X DAYDELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;

6.10 সারাংশ

  • NOW() মৌলিক বর্তমান টাইমস্ট্যাম্প পুনরুদ্ধার পরিচালনা করে
  • আপনি যদি শুধুমাত্র সময় দরকার হয়, তখন CURTIME() এবং CURRENT_TIME() উপযোগী
  • আপনি সময়-উইন্ডো কুয়েরি, দিনের সময় ফিল্টারিং, এবং মিলিসেকেন্ড প্রিসিশন টাইমস্ট্যাম্পের জন্য বর্তমান সময় ব্যবহার করতে পারেন
  • টাইমস্ট্যাম্প সময় অঞ্চল উপর নির্ভরশীল হওয়ায়, সঠিক সময় পেতে CONVERT_TZ() ব্যবহার করুন
  • ডেটাবেস সাইজ ম্যানেজমেন্টের জন্য, পুরনো ডেটা স্বয়ংক্রিয়ভাবে মুছে ফেলার একটি মেকানিজম ডিজাইন করা গুরুত্বপূর্ণ

📌 উপসংহার: বর্তমান সময় কার্যকরভাবে ব্যবহার করলে MySQL-এ ডেটা আরও দক্ষতার সঙ্গে পরিচালনা করা যায়।

7. FAQ (প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী)

এখানে MySQL-এ বর্তমান সময় কীভাবে পাবেন তা নিয়ে প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (FAQ) দেওয়া হল।
প্রতিটি প্রশ্ন স্পষ্ট ও সংক্ষিপ্তভাবে উত্তর দেওয়া হয়েছে।

7.1 NOW() এবং SYSDATE() এর মধ্যে পার্থক্য কী?

উত্তর

NOW() এবং SYSDATE() উভয়ই বর্তমান তারিখ ও সময় পুনরুদ্ধার করে, তবে তারা মান কখন মূল্যায়ন করা হয় তা নিয়ে ভিন্ন।

FunctionWhen it’s evaluatedNotes
NOW()At query startReturns a fixed timestamp for the statement
SYSDATE()At execution timeReturns a different timestamp on each evaluation

টেস্ট উদাহরণ

SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();

উদাহরণ আউটপুট

NOW()        | SLEEP(3) | NOW()
2025-02-14 16:30:45 | wait 3 seconds | 2025-02-14 16:30:45
SYSDATE()    | SLEEP(3) | SYSDATE()
2025-02-14 16:30:45 | wait 3 seconds | 2025-02-14 16:30:48

🚨 ট্রানজ্যাকশন প্রক্রিয়াকরণের জন্য সাধারণত NOW() সুপারিশ করা হয়।

7.2 কি CURRENT_TIMESTAMP() এবং NOW() একই?

Answer

এগুলো প্রায় একইভাবে কাজ করে, তবে CURRENT_TIMESTAMP() ডিফল্ট মান হিসেবে ব্যবহার করা যায়

Example when creating a table

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

7.3 নির্দিষ্ট টাইম জোনে বর্তমান সময় কীভাবে পাবো?

Answer

SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');

7.4 কীভাবে স্বয়ংক্রিয়ভাবে বর্তমান সময় রেকর্ড করা যায়?

Answer

একটি টেবিল তৈরি করার সময় DEFAULT CURRENT_TIMESTAMP নির্ধারণ করুন, যাতে created_at‑এ স্বয়ংক্রিয়ভাবে বর্তমান সময় সংরক্ষিত হয়।

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

7.5 অতীতের N দিনগুলোর ডেটা কীভাবে পুনরুদ্ধার করব?

Answer

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

7.6 মিলিসেকেন্ড (মাইক্রোসেকেন্ড) নির্ভুলতার সাথে বর্তমান সময় কীভাবে পাবো?

Answer

SELECT NOW(3);

Example output

2025-02-14 16:30:45.123

7.7 Summary

  • NOW() এবং SYSDATE() মূল্যায়নের সময়ে পার্থক্য রাখে
  • CURRENT_TIMESTAMP() ডিফল্ট মান হিসেবে ব্যবহার করা যায়
  • অন্যান্য টাইম জোনে টাইমস্ট্যাম্প পেতে CONVERT_TZ() ব্যবহার করুন
  • সৃষ্টির টাইমস্ট্যাম্প স্বয়ংক্রিয়ভাবে রেকর্ড করতে DEFAULT CURRENT_TIMESTAMP ব্যবহার করুন
  • অতীতের X দিনগুলোর ডেটা পেতে NOW() - INTERVAL X DAY ব্যবহার করুন
  • NOW(3) অথবা NOW(6) মিলিসেকেন্ড/মাইক্রোসেকেন্ড নির্ভুলতার টাইমস্ট্যাম্প সমর্থন করে

📌 Conclusion: সঠিক MySQL সময় ফাংশন নির্বাচন করা বর্তমান টাইমস্ট্যাম্প নিয়ে কাজ করার জন্য অপরিহার্য।

8. Summary

এই প্রবন্ধে আমরা MySQL‑এ বর্তমান সময় কীভাবে পাবো তা ব্যাখ্যা করেছি।
NOW() ফাংশন‑এর উপর কেন্দ্রীভূত হয়ে, সমান ফাংশনগুলোর পার্থক্য, ব্যবহারিক কুয়েরি উদাহরণ এবং গুরুত্বপূর্ণ নোটগুলো আলোচনা করেছি।

8.1 বর্তমান সময় পাওয়ার জন্য প্রধান MySQL ফাংশনগুলো

FunctionWhat it returnsFormatNotes
NOW()Current date and timeYYYY-MM-DD HH:MM:SSMost common function
SYSDATE()Date and time at executionYYYY-MM-DD HH:MM:SSCan return different values on each evaluation
CURTIME()Current timeHH:MM:SSTime only (no date)
CURRENT_TIME()Current timeHH:MM:SSSame as CURTIME()
CURRENT_TIMESTAMP()Current date and timeYYYY-MM-DD HH:MM:SSAlmost the same as NOW()
UTC_TIMESTAMP()Current UTC date and timeYYYY-MM-DD HH:MM:SSTime zone fixed to UTC

📌 Conclusion:

  • সাধারণ বর্তমান টাইমস্ট্যাম্প পুনরুদ্ধারের জন্য, সাধারণত NOW() সর্বোত্তম
  • যদি সঠিক এক্সিকিউশন সময় দরকার হয়, তবে SYSDATE() ব্যবহার করুন
  • যদি শুধুমাত্র সময় (তারিখ নয়) দরকার হয়, তবে CURTIME() বেছে নিন

8.2 বর্তমান সময় ব্যবহার করে ব্যবহারিক কুয়েরি

Record the current time when inserting data

INSERT INTO users (name, created_at) VALUES ('Sato', NOW());

Record the current time when updating data

UPDATE users SET last_login = NOW() WHERE id = 1;

Retrieve data from the past 7 days

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

Retrieve time with time zones in mind

SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');

Delete old data (older than 30 days)

DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;

8.3 টাইম জোন সম্পর্কে নোটগুলো

  • MySQL NOW() ডিফল্ট টাইম জোন সেটিং‑এর উপর নির্ভরশীল, তাই বিভিন্ন পরিবেশে ফলাফল ভিন্ন হতে পারে।
  • অন্য কোনো টাইম জোনে টাইমস্ট্যাম্প পেতে CONVERT_TZ() ব্যবহার করুন
  • সার্ভারের টাইম জোন পরিবর্তন করতে চাইলে:
    SET GLOBAL time_zone = 'Asia/Tokyo';
    

8.4 MySQL বর্তমান সময় ফাংশন সম্পর্কে FAQ

Q1. NOW() এবং SYSDATE() এর মধ্যে পার্থক্য কী?

NOW() কুয়েরি শুরু হওয়ার সময়ের সময় নিয়ে আসে, আর SYSDATE() এক্সিকিউশন সময়ের সময় নিয়ে আসে।

Q2. CURRENT_TIMESTAMP() এবং NOW() কি একই?

➡ এরা প্রায় একই, তবে CURRENT_TIMESTAMP() ডিফল্ট মান হিসেবে ব্যবহার করা যায়

Q3. মিলিসেকেন্ড (মাইক্রোসেকেন্ড) নির্ভুলতার সাথে বর্তমান সময় কীভাবে পাবো?

NOW(3) (মিলিসেকেন্ড) অথবা NOW(6) (মাইক্রোসেকেন্ড) ব্যবহার করুন।

SELECT NOW(3); -- Example: 2025-02-14 16:30:45.123

8.5 Summary

  • MySQL-এ, বর্তমান সময়ের জন্য সঠিক ফাংশন নির্বাচন করা গুরুত্বপূর্ণ .
  • NOW() সাধারণ ক্ষেত্রে ব্যবহার করুন, এবং SYSDATE() ব্যবহার করুন যখন আপনাকে সঠিক কার্যকর সময়ের টাইমস্ট্যাম্প দরকার .
  • CURTIME() শুধুমাত্র সময়ের জন্য ব্যবহার করুন, এবং CONVERT_TZ() সময় অঞ্চল রূপান্তরের জন্য ব্যবহার করুন .
  • আপনি ইনসার্ট, আপডেট, অনুসন্ধান এবং মুছে ফেলার সময় বর্তমান সময় ব্যবহার করতে পারেন .

📌 উপসংহার: ডেটা আরও কার্যকরভাবে পরিচালনা করতে MySQL সময় ফাংশনগুলো আয়ত্ত করুন।