কম্পিউটার টিউটোরিয়াল

MySQL-এ বর্তমান তারিখ ও ডেট কলামের মধ্যে দিনের পার্থক্য বের করা

MySQL-এ বর্তমান তারিখ (CURDATE()) এবং একটি ডেট কলামের মধ্যে দিনের পার্থক্য বের করতে DATEDIFF() ফাংশন ব্যবহার করুন। যদি কলামটি VARCHAR হয়, তবে STR_TO_DATE() দিয়ে পার্স করুন।

সিনট্যাক্স

SELECT DATEDIFF(CURDATE(), STR_TO_DATE(date_column, '%d-%m-%Y')) AS days_diff
FROM table_name;

উদাহরণ

CREATE TABLE date_diff_demo (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    arrival_date VARCHAR(100)  -- dd-mm-yyyy ফরম্যাটে স্ট্রিং
);

INSERT INTO date_diff_demo (arrival_date) VALUES
('12-10-2011'), ('01-12-2013'), ('31-10-2014'),
('12-04-2016'), ('20-08-2018'), ('11-03-2019');

ক্যোয়ারি

SELECT DATEDIFF(CURDATE(), STR_TO_DATE(arrival_date, '%d-%m-%Y')) AS number_of_days
FROM date_diff_demo;

ফলাফল (ধরে নিচ্ছি CURDATE() = 2019-03-12)

+--------------+
| number_of_days |
+--------------+
| 2708         |
| 1927         |
| 1593         |
| 1064         |
| 204          |
| 1            |
+--------------+

গড় দিনের পার্থক্য

SELECT AVG(DATEDIFF(CURDATE(), STR_TO_DATE(arrival_date, '%d-%m-%Y'))) AS avg_days
FROM date_diff_demo;

দ্রষ্টব্য

  • DATEDIFF(date1, date2) = date1 - date2 (দিনের সংখ্যা)
  • CURDATE() শুধু তারিখ রিটার্ন করে (সময় নেই)
  • STR_TO_DATE(str, format) স্ট্রিংকে DATE টাইপে রূপান্তর করে
  • ফরম্যাট স্ট্রিং %d-%m-%Y মানে dd-mm-yyyy

আধুনিক পদ্ধতি (MySQL 8.0+): CTE ব্যবহার

WITH parsed AS (
    SELECT id, STR_TO_DATE(arrival_date, '%d-%m-%Y') AS arrival_dt
    FROM date_diff_demo
)
SELECT id, arrival_dt, DATEDIFF(CURDATE(), arrival_dt) AS days_diff
FROM parsed;

টাইমস্ট্যাম্প কলামের জন্য

-- DATETIME/TIMESTAMP কলামের জন্য STR_TO_DATE লাগে না
SELECT DATEDIFF(CURDATE(), datetime_column) AS days_diff FROM table_name;
  1. MySQL-এ কারেন্ট ডেট ও টেবিলের ডেট রেকর্ডের পার্থক্য বের করা

  2. MySQL DATEDIFF() ফাংশন ব্যবহার করে বর্তমান তারিখ ও যোগদানের তারিখের পার্থক্য বের করা

  3. জাভাতে বর্তমান ডেট ও টাইম পাওয়ার পদ্ধতি

  4. পাইথনে বর্তমান ডেট ও টাইম কীভাবে পাবেন?