MySQL-এ INTEGER আকারে সংরক্ষিত Unix timestamp (সেকেন্ড গুননা ১৯৭০-০১-০১ থেকে) কে পঠনযোগ্য ডেট-টাইম স্ট্রিং-এ রূপান্তর করতে FROM_UNIXTIME() ফাংশন ব্যবহার করুন।
সিনট্যাক্স
SELECT FROM_UNIXTIME(unix_timestamp_column, 'format_string') FROM table_name;
সাধারণ ফরম্যাট স্ট্রিং
| ফরম্যাট | অর্থ | উদাহরণ আউটপুট |
|---|---|---|
| %Y | ৪-অঙ্কের বছর | 2024 |
| %m | ২-অঙ্কের মাস (০১-১২) | 03 |
| %d | ২-অঙ্কের দিন (০১-৩১) | 15 |
| %H | ২৪-ঘণ্টা ফরম্যাটে ঘণ্টা (০০-২৩) | 14 |
| %i | মিনিট (০০-৫৯) | 30 |
| %s | সেকেন্ড (০০-৫৯) | 45 |
উদাহরণ
CREATE TABLE timestamp_demo (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
arrival_timestamp INT
);
INSERT INTO timestamp_demo (arrival_timestamp) VALUES
(1546499730), (1546210820), (1496363157);
কনভার্ট ক্যোয়ারি
SELECT FROM_UNIXTIME(arrival_timestamp, '%Y-%m-%d %H:%i:%s') AS readable_datetime
FROM timestamp_demo;
ফলাফল
+---------------------+
| readable_datetime |
+---------------------+
| 2019-01-03 12:45:30 |
| 2018-12-31 04:30:20 |
| 2017-06-02 05:55:57 |
+---------------------+
FROM_UNIXTIME() এর আচরণ
- ফলাফল সেশন টাইমজোনে প্রদর্শিত হয় (
@@session.time_zone) - UTC-এ দেখতে চাইলে:
SET time_zone = '+00:00';সেট করে ক্যোয়ারি চালান - NULL ইনপুটের জন্য NULL রিটার্ন করে
বিপরীত: DATE -> UNIX TIMESTAMP
SELECT UNIX_TIMESTAMP('2024-03-15 10:30:00'); -- 1710489000
SELECT UNIX_TIMESTAMP(NOW()); -- বর্তমান Unix timestamp
MySQL 8.0.28+ এ UTC_TIMESTAMP()
SELECT FROM_UNIXTIME(arrival_timestamp) AT TIME ZONE 'UTC';