snippet/vault
🔎
ST Attendance
1 snippet পাওয়া গেছে
-- This will silently install the 64-bit Access Database Engine without checking for conflicting Office versions.
cd C:\Users\USER\Downloads
AccessDatabaseEngine_x64.exe /quiet
-- Open Port Check Tool -- Use this tool to check if a specific port is open on your server or local machine.
https://canyouseeme.org/
-- user_id এবং punch_time মিল থাকা ডুপ্লিকেট ডাটার মধ্যে যেটি পরে এন্ট্রি হয়েছে (ID বড়) সেটি ডিলিট করতে
DELETE t1
FROM attendances t1
INNER JOIN attendances t2 
WHERE 
    t1.id < t2.id AND 
    t1.user_id = t2.user_id AND 
    t1.punch_time = t2.punch_time;
-- ভবিষ্যতে যেন একই সময়ে একই ইউজারের ডুপ্লিকেট পাঞ্চ এন্ট্রি না হতে পারে, সেজন্য ইউনিক ইনডেক্স যোগ করতে
ALTER TABLE attendances ADD UNIQUE unique_attendance (user_id, punch_time);
-- গ্রুপ বাই (GROUP BY) ও সাবকোয়েরি ব্যবহার করে সবচেয়ে প্রথম এন্ট্রি (MIN id) বাদে বাকি ডুপ্লিকেট রেকর্ডগুলো মুছে ফেলতে
DELETE a
FROM attendances a
JOIN (
    SELECT user_id, punch_time, MIN(id) AS min_id
    FROM attendances
    GROUP BY user_id, punch_time
    HAVING COUNT(*) > 1
) b ON a.user_id = b.user_id AND a.punch_time = b.punch_time AND a.id != b.min_id;
-- নির্দিষ্ট ৩ দিনের (৭ মার্চ, ৮ মার্চ এবং ১০ মার্চ ২০২৬) অ্যাটেনডেন্স ডাটা সর্বশেষ সময়ের ক্রমানুসারে (DESC) দেখতে
SELECT * FROM `attendances` WHERE DATE(`punch_time`) IN ('2026-03-07','2026-03-08','2026-03-10') ORDER BY `punch_time` DESC;
-- আজকের দিনে যেসব ডিভাইস থেকে অ্যাটেনডেন্স এসেছে, সেই ইউনিক device_id গুলোর লিস্ট ক্রমানুসারে দেখতে
SELECT DISTINCT device_id FROM attendances WHERE punch_time >= CURDATE() AND punch_time < CURDATE() + INTERVAL 1 DAY ORDER BY `attendances`.`device_id` ASC
-- যেসব user_id তে শুধু সংখ্যা (digits) নেই (যেমন: অক্ষর বা স্পেশাল ক্যারেক্টার আছে) সেগুলো বের করতে
SELECT user_id FROM attendances WHERE user_id NOT REGEXP '^[0-9]+$';
-- যেসব ডাটার স্ট্যাটাস 0 এবং পাঞ্চ টাইম ১ জানুয়ারি ২০২৬ বা তার আগে, সেগুলোর স্ট্যাটাস 1 করতে
UPDATE `attendances` SET `status` = '1'  WHERE   `status` = 0 AND `punch_time` <= '2026-01-01';
-- যেসব ডাটার স্ট্যাটাস 0 এবং পাঞ্চ টাইম ৩০ মে ২০২৬ বা তার আগে, সেগুলোর স্ট্যাটাস 2 করতে
UPDATE `attendances` SET `status` = '2'  WHERE `status` = 0 AND `punch_time` <= '2026-05-30';
-- ৩০ জানুয়ারি ২০২৬ বা তার পরের সব অ্যাটেনডেন্স ডাটার স্ট্যাটাস রিচেক/প্রসেস করার জন্য 0 করতে
UPDATE `attendances` SET `status` = '0'  WHERE `punch_time` >= '2026-01-30';
-- ইউজারের ID ১৫ থেকে পরিবর্তন করে ৩৮ এ আপডেট করতে
UPDATE `attendances` SET `user_id` = '38' WHERE `user_id` = '15';
-- নির্দিষ্ট কিছু ইউজার আইডি (১৭২৮৯১, ১৭২৮৯২)-র স্ট্যাটাস রি-প্রসেস করার জন্য 0 করতে
UPDATE `attendances` 
SET `status` = '0' 
WHERE `user_id` IN (
    '172891','172892',
);
-- ২৪ জুন ২০২৫ বা তার পরের সব লগ-এর স্ট্যাটাস 0 করতে
UPDATE `attendance_log` SET `status` = '0' WHERE `checktime` >= '2025-06-24 00:00:00';
-- ৩১ ডিসেম্বর ২০২৫ বা তার আগের সব লগ-এর স্ট্যাটাস প্রসেসড বা Processed (1) হিসেবে চিহ্নিত করতে
UPDATE `attendance_log` SET `status` = '1' WHERE `checktime` <= '2025-12-31 00:00:00';
-- ৩৮ নম্বর ইউজারের সব লগের স্ট্যাটাস 0 করতে
UPDATE `attendance_log` SET `status` = '0' WHERE `user_id` = 38;
-- অরিজিনাল লগে ইউজারের ID ১৫ থেকে ৩৮ এ পরিবর্তন করতে
UPDATE `attendance_log` SET `user_id` = '38' WHERE `user_id` = 15;
-- ৩১ আগস্ট ২০২৪ বা তার আগের সব লগের স্ট্যাটাস রি-সেট (0) করতে
UPDATE `attendance_log` SET `status` = '0' WHERE `checktime` <= '2024-08-31 00:00:00' ;
-- ভুল ইউজারের (38777) ডাটা সঠিক ইউজার (312)-এ ট্রান্সফার করতে
UPDATE attendance_log SET user_id= 312 WHERE user_id = 38777
-- নির্দিষ্ট ইউজার (312)-এর স্ট্যাটাস রি-প্রসেসের জন্য 0 করতে
UPDATE attendance_log SET status = 0 WHERE user_id= 312 ;
🗑️ ৫. অনাকাঙ্ক্ষিত ডাটা ডিলিট ও টেবিল কাস্টমাইজেশন
-- ৩১ ডিসেম্বর ২০২৫-এর পরের সব অ্যাটেনডেন্স ডাটা মুছে ফেলতে
DELETE FROM attendances WHERE punch_time >= '2025-12-31';

-- ২৭ নভেম্বর ২০২৫-এর পরের সব অ্যাটেনডেন্স লগ মুছে ফেলতে
DELETE FROM tbl_attendance_log WHERE attendance_date >= '2025-11-27';

-- যেসব user_id তে শুধু সংখ্যা নেই (অক্ষর বা আবর্জনা ডাটা রয়েছে) সেগুলো মুছে ফেলতে
DELETE FROM attendances WHERE user_id NOT REGEXP '^[0-9]+$';

-- user_id কলামের ডাটা টাইপ INT (পূর্ণসংখ্যা) এবং ডিফল্ট মান NULL হিসেবে পরিবর্তন করতে
ALTER TABLE `attendances` CHANGE `user_id` `user_id` INT NULL DEFAULT NULL;
-- Windows Run (Win + R) কাস্টম হিস্ট্রি ডিলিট করার নিয়ম:
Windows-এ Run (Windows + R) এর হিস্টরি (ইতিহাস) ডিলেট করার কয়েকটি উপায় আছে। নিচে সহজভাবে ব্যাখ্যা করছি:
🧹 পদ্ধতি ১: Registry Editor ব্যবহার করে

Windows + R চাপুন, তারপর লিখুন regedit → Enter চাপুন।

নিচের লোকেশনটিতে যান:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU

ডান পাশে আপনি Run-এ টাইপ করা পুরনো কমান্ডগুলোর লিস্ট (a, b, c... নামে) দেখতে পাবেন।
যেগুলো আপনি মুছে ফেলতে চান, সেগুলোর ওপর রাইট ক্লিক করে Delete দিন।

MRUList নামক ভ্যালুটি ডিলিট করবেন না।
কাজ শেষ হলে Regedit বন্ধ করে দিন।