Ravindra BagaleCourses & study guides Track your progress

9. Analysts साठी Date आणि Time queries

9.1 Date range सुरक्षितपणे filter कसा करायचा (>= सुरुवात AND < पुढची)

का (Why). महिन्याचा शेवटचा दिवस सुटला तर monthly report चुकतो. Date-time text सोबत हे बऱ्याचदा होतं.

काय (What). posted_at मध्ये date आणि time दोन्ही आहेत. SQLite या values ची तुलना text म्हणून करतं. '2026-09-30 15:30:00' हा text '2026-09-30' ने सुरू होतो आणि त्यापेक्षा लांब आहे, म्हणून तो त्याच्या नंतर येतो. त्यामुळे BETWEEN '2026-09-01' AND '2026-09-30' मध्ये 30 September चा वेळ असलेला प्रत्येक row सुटतो, अगदी 00:00:00 चा सुद्धा. सुरक्षित पद्धत म्हणजे पहिल्या दिवसाच्या >= आणि पुढच्या महिन्याच्या पहिल्या दिवसाच्या <. इथे हे चालतं कारण प्रत्येक posted_at एकाच format मध्ये, YYYY-MM-DD HH:MM:SS, आणि एकाच घड्याळानुसार आहे. Table मध्ये वेगवेगळे formats किंवा time zones असतील तर आधी ते एका format मध्ये आणा.

कसं (How). September चे rows BETWEEN ने आणि सुरक्षित पद्धतीने मोजा, आणि दोन्ही counts ची तुलना करा.

पायऱ्या

  1. पहिलं उदाहरण run करा, त्यात BETWEEN वापरलं आहे.
  2. दुसरं उदाहरण run करा, त्यात >= आणि < वापरलं आहे.
  3. दोन्ही counts ची तुलना करा: सुरक्षित पद्धतीत एक row जास्त मिळतो.
  4. BETWEEN ने सोडलेला row बघायला तिसरं उदाहरण run करा.

उदाहरणे

उदाहरण 1 · dataset: northstar_bank

SELECT COUNT(*) AS rows_found
FROM transactions
WHERE posted_at BETWEEN '2026-09-01' AND '2026-09-30';

Output

rows_found
8

Meaning. BETWEEN ला 8 rows मिळतात, पण September मध्ये खरंतर 9 आहेत.

उदाहरण 2 · dataset: northstar_bank

SELECT COUNT(*) AS rows_found
FROM transactions
WHERE posted_at >= '2026-09-01'
  AND posted_at <  '2026-10-01';

Output

rows_found
9

Meaning. सुरक्षित पद्धतीने शेवटच्या दिवसासह September चे सगळे 9 rows मिळतात.

उदाहरण 3 · dataset: northstar_bank

SELECT txn_id, posted_at, amount
FROM transactions
WHERE posted_at >= '2026-09-30'
  AND posted_at <  '2026-10-01';

Output

txn_idposted_atamount
252026-09-30 15:30:00700.0

Meaning. BETWEEN ने सोडलेला हा 30 September चा दुपारी 15:30 चा withdrawal आहे.

Ravindra Bagale's Tip

Say it as a rule: from the start date, up to but not including the next start date. It works for days, months and years when all dates share one format.