SQLite Date & Time ফাংশন – date(), time(), datetime(), julianday(), strftime() (বাংলা টিউটোরিয়াল)

Blog / SQLite Date & Time ফাংশন – date(), time(), datetime(), julianday(), strftime() (বাংলা টিউটোরিয়াল)

SQLite Date & Time ফাংশন – date(), time(), datetime(), julianday(), strftime() (বাংলা টিউটোরিয়াল) Detail Page

SQLite Date & Time ফাংশন – date(), time(), datetime(), julianday(), strftime() (বাংলা টিউটোরিয়াল)

SQLite Date & Time ফাংশন date(), time(), datetime(), julianday(), strftime() বাংলা টিউটোরিয়াল

ডাটাবেসে তারিখ ও সময় সংক্রান্ত ডেটা সংরক্ষণ এবং প্রক্রিয়াকরণ একটি অতি সাধারণ চাহিদা – জন্মতারিখ, লেনদেনের সময়, লগ এন্ট্রি ইত্যাদি। SQLite-তে এর জন্য পাঁচটি শক্তিশালী বিল্ট-ইন ফাংশন আছে: date()time()datetime()julianday(), এবং strftime()। এরা সবাই একটি টাইম স্ট্রিং (time string) এবং প্রয়োজনীয় কিছু মডিফায়ার (modifier) গ্রহণ করে কাঙ্ক্ষিত ফরম্যাটে তারিখ বা সময় ফেরত দেয়। আজকের পর্বে আমরা প্রতিটি ফাংশনের ব্যবহার, টাইম স্ট্রিং-এর ফরম্যাট, মডিফায়ারের জাদু, এবং strftime() দিয়ে কাস্টম ফরম্যাটিং বিস্তারিত উদাহরণসহ শিখব।


পূর্বপ্রস্তুতি

  • SQLite ইন্সটল থাকতে হবে (সিরিজের ৩য় পর্ব দেখুন)।
  • আমরা সরাসরি SQLite শেলে ফাংশনগুলো টেস্ট করব। কোনো টেবিল বা আলাদা ডাটাবেসের প্রয়োজন নেই; :memory: ডাটাবেসেই চলবে।
  • আউটপুট সুন্দর করতে .header on ও .mode column ঐচ্ছিক, কারণ এখানে স্কেলার ভ্যালু ফেরত আসবে।

bash

sqlite3 :memory:

১. পাঁচটি ডেট-টাইম ফাংশনের পরিচিতি

প্রতিটি ফাংশন একটি টাইম স্ট্রিং (যেমন 'now''2025-08-08', ইত্যাদি) এবং শূন্য বা একাধিক মডিফায়ার নেয়। একমাত্র strftime()-এর প্রথম আর্গুমেন্ট একটি ফরম্যাট স্ট্রিং।

ফাংশনকাজউদাহরণ আউটপুট
date(...)তারিখ (YYYY-MM-DD)2025-08-08
time(...)সময় (HH:MM:SS)14:30:00
datetime(...)তারিখ ও সময় (YYYY-MM-DD HH:MM:SS)2025-08-08 14:30:00
julianday(...)জুলিয়ান ডে নম্বর (৪৭১৪ খ্রিস্টপূর্বাব্দের ২৪ নভেম্বর, গ্রিনিচ দুপুর থেকে দিন সংখ্যা)2460925.104
strftime(format, ...)কাস্টম ফরম্যাট অনুযায়ী তারিখ/সময় স্ট্রিং'08/08/2025'

২. টাইম স্ট্রিং (Time Strings)

টাইম স্ট্রিং হিসেবে আপনি বিভিন্ন ফরম্যাটের মান ব্যবহার করতে পারেন। বহুল ব্যবহৃত ফরম্যাটগুলো হলো:

ফরম্যাটউদাহরণ
YYYY-MM-DD'2025-08-08'
YYYY-MM-DD HH:MM'2025-08-08 14:30'
YYYY-MM-DD HH:MM:SS.SSS'2025-08-08 14:30:05.500'
MM-DD-YYYY HH:MM'08-08-2025 14:30'
HH:MM'14:30'
YYYY-MM-DDTHH:MM'2025-08-08T14:30' (T হলো সেপারেটর)
HH:MM:SS'14:30:05'
YYYYMMDD HHMMSS'20250808 143005'
nowবর্তমান সময়ের জন্য (কোটেশন সহ 'now')

৩. মডিফায়ার (Modifiers)

মডিফায়ারগুলো টাইম স্ট্রিংয়ের পরে যোগ করা হয় এবং সময়ের হিসাব পরিবর্তন করে। এরা বাম থেকে ডানে প্রয়োগ হয়। বহুল ব্যবহৃত মডিফায়ার:

  • NNN days – N দিন যোগ/বিয়োগ
  • NNN hours – N ঘন্টা
  • NNN minutes – N মিনিট
  • NNN.NNNN seconds – N সেকেন্ড
  • NNN months – N মাস
  • NNN years – N বছর
  • start of month – মাসের প্রথম দিন
  • start of year – বছরের প্রথম দিন
  • start of day – দিনের শুরু (00:00:00)
  • weekday N – পরবর্তী N তম দিন (0=রবি, 1=সোম,…)
  • unixepoch – ইউনিক্স টাইমস্ট্যাম্প থেকে কনভার্ট
  • localtime – স্থানীয় সময়ে রূপান্তর
  • utc – UTC-তে রূপান্তর

উদাহরণ:

sql

SELECT date('now', '+1 day');        -- আগামীকাল
SELECT date('now', '-7 days');       -- ৭ দিন আগে
SELECT date('now', 'start of month');-- চলতি মাসের ১ তারিখ
SELECT date('now', '+1 month', '-1 day'); -- চলতি মাসের শেষ দিন

৪. ব্যবহারিক উদাহরণসমূহ

৪.১ বর্তমান তারিখ ও সময়

sql

SELECT date('now');           -- 2025-08-08
SELECT time('now');           -- 14:30:05
SELECT datetime('now');       -- 2025-08-08 14:30:05

৪.২ ইউনিক্স টাইমস্ট্যাম্প থেকে কনভার্ট

sql

SELECT datetime(1092941466, 'unixepoch');        -- 2004-08-19 18:51:06 (UTC)
SELECT datetime(1092941466, 'unixepoch', 'localtime'); -- স্থানীয় সময়

৪.৩ বর্তমান ইউনিক্স টাইমস্ট্যাম্প বের করা

sql

SELECT strftime('%s', 'now');   -- 1393348134 (উদাহরণ)

৪.৪ জুলিয়ান ডে ব্যবহার

sql

SELECT julianday('now');        -- বর্তমান জুলিয়ান ডে
SELECT julianday('now') - julianday('1776-07-04'); -- যুক্তরাষ্ট্রের স্বাধীনতা দিবস থেকে দিনসংখ্যা

৪.৫ ইউটিসি ও স্থানীয় সময়ে রূপান্তর

sql

SELECT time('12:00', 'localtime');  -- আপনার লোকাল টাইম অনুযায়ী
SELECT time('12:00', 'utc');        -- UTC-তে রূপান্তর

৪.৬ নির্দিষ্ট দিন গণনা

চলতি বছরের অক্টোবরের প্রথম মঙ্গলবার (weekday 2 = মঙ্গলবার):

sql

SELECT date('now', 'start of year', '+9 months', 'weekday 2');

৫. strftime() ও ফরম্যাটার (Formatters)

strftime() ফাংশনটি প্রথম আর্গুমেন্ট হিসেবে একটি ফরম্যাট স্ট্রিং নেয় এবং কাস্টম ফরম্যাটে তারিখ/সময় আউটপুট দেয়।

প্রধান ফরম্যাট স্পেসিফায়ার:

স্পেসিফায়ারঅর্থউদাহরণ
%dমাসের দিন (01-31)08
%fসেকেন্ডের ভগ্নাংশ (SS.SSS)05.500
%Hঘন্টা (00-23)14
%jবছরের দিন (001-366)220
%Jজুলিয়ান ডে নম্বর2460925.1
%mমাস (01-12)08
%Mমিনিট (00-59)30
%s১৯৭০-০১-০১ থেকে সেকেন্ড1691483405
%Sসেকেন্ড (00-59)05
%wসপ্তাহের দিন (0=রবি, 6=শনি)5
%Wবছরের সপ্তাহ (01-53)32
%Yবছর (YYYY)2025
%%% চিহ্ন%

উদাহরণ:

sql

SELECT strftime('%d/%m/%Y', 'now');           -- 08/08/2025
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now'); -- 2025-08-08 14:30:05
SELECT strftime('%s', 'now') - strftime('%s', '2004-01-01 02:34:56'); -- সেকেন্ডের পার্থক্য
SELECT strftime('%W', 'now'); -- চলতি সপ্তাহ নম্বর

৬. ডিরেক্টরি স্ট্রাকচার ও প্যাকেজ

এই পর্বে কোনো নির্দিষ্ট ডাটাবেস ফাইলের প্রয়োজন নেই; সমস্ত কোয়েরি ইন-মেমরিতে চালানো যায়। কোনো অতিরিক্ত প্যাকেজ ইন্সটল করতে হবে না। তারিখ ও সময় ফাংশনগুলো SQLite-এর বিল্ট-ইন অংশ।


৭. গুরুত্বপূর্ণ টিপস

  • ডেটা সংরক্ষণের ফরম্যাট: তারিখ ও সময় সাধারণত TEXT (ISO 8601: YYYY-MM-DD HH:MM:SS) হিসেবে সংরক্ষণ করাই উত্তম, কারণ তা মানব-পঠনযোগ্য ও ফাংশনের সাথে সরাসরি কাজ করে।
  • 'now' স্থির: একই কোয়েরিতে 'now' একাধিকবার ব্যবহার করলে সব জায়গায় একই মান পাওয়া যায় (কোয়েরির শুরুতে স্থিরীকৃত), যা ট্রানজ্যাকশন লগের জন্য ভালো।
  • মডিফায়ারের ক্রম গুরুত্বপূর্ণ: date('now', '+1 month', '-1 day') প্রথমে এক মাস বাড়াবে, তারপর এক দিন কমাবে – কাঙ্ক্ষিত মাসের শেষ দিন।
  • unixepoch ব্যবহার: বাইরের সিস্টেম থেকে আসা টাইমস্ট্যাম্পকে datetime(timestamp, 'unixepoch') দিয়ে সহজেই রূপান্তর করুন।
  • জুলিয়ান ডের সুবিধা: দিনের পার্থক্য গণনায় julianday() খুব কার্যকর, কারণ এটি সরাসরি বিয়োগযোগ্য।

৮. সম্পূর্ণ অনুশীলন সেশন

টার্মিনালে নিচের কমান্ডগুলো চালান:

sql

.headers on
.mode column

-- ১. বর্তমান তারিখ, সময়, ও পূর্ণাঙ্গ টাইমস্ট্যাম্প
SELECT date('now') AS আজকের_তারিখ;
SELECT time('now') AS এখন_সময়;
SELECT datetime('now') AS এখন;

-- ২. মাসের শেষ দিন
SELECT date('now', 'start of month', '+1 month', '-1 day') AS মাসের_শেষ_দিন;

-- ৩. ইউনিক্স টাইমস্ট্যাম্প
SELECT strftime('%s', 'now') AS ইউনিক্স_টাইম;

-- ৪. জুলিয়ান ডে পার্থক্য
SELECT julianday('now') - julianday('2000-01-01') AS দিন_সংখ্যা_২০০০_পর;

-- ৫. কাস্টম ফরম্যাট
SELECT strftime('%d/%m/%Y', 'now') AS বাংলাদেশী_তারিখ;
SELECT strftime('%H:%M:%S', 'now', '+6 hours') AS ছয়_ঘন্টা_পর;

-- ৬. স্থানীয় সময় ও UTC
SELECT datetime('now', 'utc') AS UTC_এখন;
SELECT datetime('now', 'localtime') AS স্থানীয়_এখন;

পরবর্তী পর্বে

আমরা শিখব SQLite Useful Functions – স্ট্রিং, ম্যাথ, এবং অন্যান্য বিল্ট-ইন ফাংশন যা দৈনন্দিন ডেটা প্রক্রিয়াকরণে কাজে আসে।

লেখকের কথা: তারিখ ও সময় নিয়ে কাজ করা এখন আপনার জন্য পানির মতো সহজ হবে। বাংলায় SQLite শেখার এই সিরিজ চলমান রাখতে আপনার উৎসাহ আমাদের বড় পাথেয়। পোস্টটি ভালো লাগলে শেয়ার করতে ভুলবেন না, এবং সিরিজের সব আপডেট পেতে ToLearnTeam.com সাবস্ক্রাইব করুন। কোনো প্রশ্ন বা জিজ্ঞাসা কমেন্টে জানান – আমরা উত্তর দিতে প্রস্তুত!



SQLite Full Course

  1. SQLite পরিচিতি ও ইন্সটলেশন গাইড – বাংলায় প্রথম ডাটাবেস তৈরি
  2. SQLite কী এবং কেন শিখবেন? সম্পূর্ণ ওভারভিউ ও কমান্ড ক্লাসিফিকেশন (DDL, DML, DQL)
  3. SQLite ইন্সটলেশন গাইড – Windows, Linux ও Mac-এ ধাপে ধাপে সেটআপ
  4. SQLite ডট কমান্ড (Dot Commands) – সম্পূর্ণ গাইড, আউটপুট ফরম্যাট ও sqlite_master
  5. SQLite সিনট্যাক্স (Syntax) – কেস সেনসিটিভিটি, কমেন্ট, সব কমান্ডের গঠন ও উদাহরণ
  6. SQLite ডেটা টাইপ (Data Type) – স্টোরেজ ক্লাস, টাইপ অ্যাফিনিটি, বুলিয়ান ও ডেট-টাইম
  7. SQLite ডেটাবেস তৈরি (Create Database) – ধাপে ধাপে গাইড, .dump এক্সপোর্ট ও রিস্টোর
  8. SQLite ATTACH DATABASE – একাধিক ডাটাবেস সংযুক্ত করার সম্পূর্ণ গাইড (বাংলা)
  9. SQLite DETACH DATABASE – সংযুক্ত ডাটাবেস বিচ্ছিন্ন করার পূর্ণাঙ্গ গাইড
  10. SQLite CREATE TABLE স্টেটমেন্ট – টেবিল তৈরি করার পূর্ণাঙ্গ গাইড (বাংলা)
  11. SQLite DROP TABLE স্টেটমেন্ট – টেবিল ডিলিট করার সম্পূর্ণ গাইড (বাংলা)
  12. SQLite INSERT INTO স্টেটমেন্ট – ডেটা ইনসার্ট করার সম্পূর্ণ গাইড (বাংলা)
  13. SQLite SELECT স্টেটমেন্ট – টেবিল থেকে ডেটা ফেচ করার সম্পূর্ণ গাইড (বাংলা)
  14. SQLite অপারেটর (Operators) – Arithmetic, Comparison, Logical, Bitwise (বাংলা টিউটোরিয়াল)
  15. SQLite এক্সপ্রেশন (Expressions) – বুলিয়ান, নিউমেরিক ও ডেট এক্সপ্রেশন (বাংলা টিউটোরিয়াল)
  16. SQLite AND ও OR অপারেটর – একাধিক শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল)
  17. SQLite UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা)
  18. SQLite DELETE Query – টেবিল থেকে ডেটা মুছে ফেলার সম্পূর্ণ গাইড (বাংলা)
  19. SQLite LIKE Operator – প্যাটার্ন মিলিয়ে ডেটা খোঁজার সম্পূর্ণ গাইড (বাংলা)
  20. SQLite GLOB Operator – কেস-সেনসিটিভ প্যাটার্ন মিলিয়ে ডেটা খোঁজা (বাংলা)
  21. SQLite LIMIT Clause – ডেটা সীমিত করে আনার সম্পূর্ণ গাইড (বাংলা)
  22. SQLite ORDER BY ক্লজ – ডেটা সাজানোর সম্পূর্ণ গাইড (বাংলা)
  23. SQLite GROUP BY ক্লজ – ডেটা গ্রুপ করে বিশ্লেষণ করার সম্পূর্ণ গাইড (বাংলা)
  24. SQLite HAVING ক্লজ – গ্রুপের উপর শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল)
  25. SQLite DISTINCT Keyword – ডুপ্লিকেট ডেটা বাদ দিয়ে ইউনিক ভ্যালু পাওয়া (বাংলা)
  26. SQLite PRAGMA কমান্ড – ডাটাবেস কনফিগারেশন ও সেটিংস (বাংলা টিউটোরিয়াল)
  27. SQLite Constraints – NOT NULL, DEFAULT, UNIQUE, PRIMARY KEY, CHECK (বাংলা টিউটোরিয়াল)
  28. SQLite JOINS – CROSS JOIN, INNER JOIN, LEFT OUTER JOIN (বাংলা টিউটোরিয়াল)
  29. SQLite UNION ও UNION ALL – একাধিক SELECT একত্রিত করার সম্পূর্ণ গাইড (বাংলা)
  30. SQLite NULL Values – NULL কী, IS NULL, IS NOT NULL (বাংলা টিউটোরিয়াল)
  31. SQLite ALIAS Syntax – টেবিল ও কলামের অস্থায়ী নাম (বাংলা টিউটোরিয়াল)
  32. SQLite Triggers – স্বয়ংক্রিয় ট্রিগার তৈরি, ব্যবহার ও মুছে ফেলা (বাংলা টিউটোরিয়াল)
  33. SQLite Indexes – CREATE, UNIQUE, COMPOSITE, DROP INDEX (বাংলা টিউটোরিয়াল)
  34. SQLite INDEXED BY Clause – নির্দিষ্ট ইনডেক্স ব্যবহার ও NOT INDEXED (বাংলা)
  35. SQLite ALTER TABLE Command – টেবিলের গঠন পরিবর্তন (বাংলা টিউটোরিয়াল)
  36. SQLite TRUNCATE TABLE Command – DELETE ও DROP দিয়ে টেবিল খালি করা (বাংলা)
  37. SQLite Views – ভার্চুয়াল টেবিল তৈরি, ব্যবহার ও ডিলিট (বাংলা টিউটোরিয়াল)
  38. SQLite Transactions – BEGIN, COMMIT, ROLLBACK ও ACID প্রপার্টি (বাংলা)
  39. SQLite Subqueries – SELECT, INSERT, UPDATE, DELETE-এ সাবকোয়েরি ব্যবহার (বাংলা টিউটোরিয়াল)
  40. SQLite AUTOINCREMENT – স্বয়ংক্রিয়ভাবে প্রাইমারি কি মান বৃদ্ধি (বাংলা টিউটোরিয়াল)
  41. SQLite SQL Injection – কী, কেন বিপজ্জনক ও প্রতিরোধের উপায় (বাংলা টিউটোরিয়াল)
  42. SQLite EXPLAIN ও EXPLAIN QUERY PLAN – কোয়েরি বিশ্লেষণ (বাংলা টিউটোরিয়াল)
  43. SQLite VACUUM – ডাটাবেস পরিষ্কার, স্পেস রিক্লেইম ও অটো-ভ্যাকুয়াম (বাংলা টিউটোরিয়াল)
  44. SQLite Date & Time ফাংশন – date(), time(), datetime(), julianday(), strftime() (বাংলা টিউটোরিয়াল)
  45. SQLite Useful Functions – COUNT, MAX, MIN, AVG, SUM, RANDOM, ABS, UPPER, LOWER, LENGTH (বাংলা টিউটোরিয়াল)
  46. SQLite C/C++ প্রোগ্রামিং – sqlite3_open, exec, close, callback (বাংলা টিউটোরিয়াল)
  47. SQLite PHP প্রোগ্রামিং – PHP-তে SQLite ডাটাবেস ব্যবহার (বাংলা টিউটোরিয়াল)
  48. SQLite Perl প্রোগ্রামিং – DBI/DBD::SQLite দিয়ে ডাটাবেস অপারেশন (বাংলা)
  49. SQLite Python প্রোগ্রামিং – sqlite3 মডিউল দিয়ে CRUD অপারেশন (বাংলা টিউটোরিয়াল)
  50. SQLite Quick Guide – বাংলায় পূর্ণাঙ্গ সংক্ষিপ্ত টিউটোরিয়াল (শেখার সহজ গাইড)

Leave a Reply

Welcome to To Learn Team, a dynamic educational platform where knowledge meets collaboration. Designed for students, educators, and lifelong learners, we provide a curated hub of interactive study groups, expert tutorials, and comprehensive resources across diverse subjects. We believe that learning is most powerful when done together. By uniting a global community, we transform curiosity into confidence and individual aspirations into shared achievements. Join the To Learn Team today—elevate your intellect and grow with us!

Get In Touch

Address

Dhaka, Bangladesh

Email

abir43tee@gmail.com

Phone

+880 1711427737

Quick Search