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

MySQL-এ TIMESTAMP ডিফল্ট ভ্যালু: CURRENT_TIMESTAMP ব্যবহার করুন, CURRENT_DATE() নয়

MySQL-এ TIMESTAMP কলামের ডিফল্ট ভ্যালু হিসেবে বর্তমান তারিখ-সময় সেট করতে CURRENT_TIMESTAMP ব্যবহার করুন। CURRENT_DATE() শুধু তারিখ দেয়, টাইম কম্পোনেন্ট থাকে না।

সঠিক সিনট্যাক্স

CREATE TABLE default_current_date_demo (
    student_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    student_name VARCHAR(20),
    student_admission_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

উদাহরণ

INSERT INTO default_current_date_demo (student_name) VALUES ('Larry');
INSERT INTO default_current_date_demo (student_name, student_admission_date) 
VALUES ('Chris', '2019-01-31');

ফলাফল

+------------+-------------+----------------------+
| student_id | student_name| student_admission_date|
+------------+-------------+----------------------+
| 1          | Larry       | 2019-04-02 19:38:19  |  -- অটো CURRENT_TIMESTAMP
| 2          | Chris       | 2019-01-31 00:00:00  |  -- এক্সপ্লিসিট মান
+------------+-------------+----------------------+

CURRENT_TIMESTAMP ভেরিয়েন্টস

সিনট্যাক্সবর্ণনা
CURRENT_TIMESTAMPস্ট্যান্ডার্ড, প্যারেনথেসিস ছাড়া
CURRENT_TIMESTAMP()ফাংশন সিনট্যাক্স, সমতুল্য
NOW()সমতুল্য, নন-স্ট্যান্ডার্ড

ON UPDATE CURRENT_TIMESTAMP (অটো আপডেট)

CREATE TABLE auto_update_demo (
    id INT PRIMARY KEY,
    data VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
  • created_at — ইনসার্ট সময় সেট হয়, পরে বদলায় না
  • updated_at — ইনসার্ট ও আপডেট দুবারের সময় বদলায়

TIMESTAMP vs DATETIME

ফিচারTIMESTAMPDATETIME
রেঞ্জ1970-2038 (32-বিট)1000-9999
টাইমজোন কনভার্সনহ্যাঁ (UTC-এ স্টোর)না
ডিফল্ট CURRENT_TIMESTAMPহ্যাঁ (৫.৬.৫+)হ্যাঁ (৫.৬.৫+)
স্টোরেজ৪ বাইট৫ বাইট (৫.৬.৪+) / ৮ বাইট

দ্রষ্টব্য

  • DEFAULT CURRENT_DATE() — সিনট্যাক্স এরর (ফাংশন কল ডিফল্টে অনুমোদিত নয়, শুধু CURRENT_TIMESTAMP অপवाद)
  • MySQL 8.0.13+ এ DEFAULT (CURRENT_DATE()) কাজ করে (প্যারেনথেসিসে)
  1. Java-এ MySQL PreparedStatement দিয়ে SELECT কোয়েরি চালানো

  2. MySQL টেবিলের জন্য 'user' শব্দ ব্যবহার করা যাবে কি?

  3. MySQL 8.0-এ 'rank' রিজার্ভড ওয়ার্ড: কলাম নাম হিসেবে ব্যাকটিকস (`rank`) ব্যবহার করুন

  4. MySQL-এ DATE_FORMAT() ফাংশন ব্যবহার করে ডেট কলামের ফরম্যাট পরিবর্তন করা