MySQL-এ একটি ডেট/ডেটাইমের 그날ের শেষ সেকেন্ড (২৩:৫৯:৫৯) বের করতে DATE() ফাংশন এবং INTERVAL অ্যারিথমেটিক ব্যবহার করা হয়।
টেবিল এবং ডেটা
CREATE TABLE DemoTable (
JoiningDatetime DATETIME,
DueDatetime DATETIME
);
INSERT INTO DemoTable(JoiningDatetime) VALUES('2019-11-03 12:34:54');
INSERT INTO DemoTable(JoiningDatetime) VALUES('2019-10-04 12:34:54');
আপডেট কুয়েরি: DueDatetime = 그날 ২৩:৫৯:৫৯
UPDATE DemoTable
SET DueDatetime = DATE(JoiningDatetime) + INTERVAL 1 DAY - INTERVAL 1 SECOND;
ফলাফল
+---------------------+---------------------+
| JoiningDatetime | DueDatetime |
+---------------------+---------------------+
| 2019-11-03 12:34:54 | 2019-11-03 23:59:59 |
| 2019-10-04 12:34:54 | 2019-10-04 23:59:59 |
+---------------------+---------------------+
লজিক ব্যাখ্যা
DATE(JoiningDatetime)— শুধু ডেট পার্ট: '2019-11-03' (মিডনাইট ০০:০০:০০)+ INTERVAL 1 DAY— পরের দিনের মিডনাইট: '2019-11-04 00:00:00'- INTERVAL 1 SECOND— ১ সেকেন্ড কমিয়ে: '2019-11-03 23:59:59'
বিকল্প: LAST_DAY (মাসের শেষ দিন)
-- মাসের শেষ দিনের ২৩:৫৯:৫৯
LAST_DAY(JoiningDatetime) + INTERVAL 23 HOUR + INTERVAL 59 MINUTE + INTERVAL 59 SECOND
MySQL 8.0+: টাইমজোন সতর্কতা
TIMESTAMP টাইপে টাইমজোন কনভারশন হয়, DATETIME-এ হয় না। একই টাইমজোন নিশ্চিত করুন।