Oracle-এ TRUNC(SYSDATE) দিয়ে শুধু ডেট পার্ট বের করা হয়। MySQL-এ এর সমতুল্য DATE() ফাংশন বা CURDATE()।
বর্তমান তারিখ
SELECT CURDATE(); -- 2019-10-20
টেবিল এবং ডেটা
CREATE TABLE DemoTable1613 (
PostingDate DATETIME
);
INSERT INTO DemoTable1613 VALUES('2019-10-20 12:02:45');
INSERT INTO DemoTable1613 VALUES('2018-10-20 12:02:45');
INSERT INTO DemoTable1613 VALUES('2015-10-20 12:02:45');
INSERT INTO DemoTable1613 VALUES('2019-10-20 10:00:00');
আজকের রেকর্ড বের করা (Oracle TRUNC সমতুল্য)
SELECT * FROM DemoTable1613
WHERE DATE(PostingDate) = CURDATE();
ফলাফল
+---------------------+
| PostingDate |
+---------------------+
| 2019-10-20 12:02:45 |
| 2019-10-20 10:00:00 |
+---------------------+
ফাংশন তুলনা
| Oracle | MySQL | ব্যাখ্যা |
|---|---|---|
| TRUNC(SYSDATE) | CURDATE() | বর্তমান ডেট (টাইম ছাড়া) |
| TRUNC(datetime_col) | DATE(datetime_col) | ডেটাইম থেকে ডেট পার্ট |
| SYSDATE | NOW() | বর্তমান ডেটাইম |
টিপ: বড় টেবিলে DATE(col) ব্যবহার করলে ইন্ডেক্স কাজ করে না। রেঞ্জ কুয়েরি ভালো: WHERE col >= CURDATE() AND col < CURDATE() + INTERVAL 1 DAY।