DATE Functions (SYSDATE, SYSTIMESTAMP, TO_CHAR, TRUNC, ROUND, NEXT_DAY, LAST_DAY, MONTHS_BETWEEN, ADD_MONTHS)

Date functions એ database management નાં શસ્ત્રક્રિયાનાં ઓજારો છે, જે તમને library ના મોડા દંડથી લઈને student ના semester નાં સીમાચિહ્નો સુધી બધું track કરવા સમયરેખાઓ કાપવા, ખસેડવા, અને ગણવા દે છે.

12 min read · 12 cards · 3 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

ઘડિયાળ ટકટક કરે છે

તમારા university ની library નું database કલ્પો. તમારે મોડું પુસ્તક પાછું આપનાર એક student માટે બિલકુલ દંડ ગણવો છે, નક્કી કરવું છે કે કયા students બિલકુલ છ મહિનામાં graduate થશે, કે એક raw timestamp ને વાંચી શકાય એવા 'DD-MON-YYYY' ના report માં format કરવું છે. જો તમે dates ને સાદી strings કે integers જેવી ગણો, તો તમે leap years, મહિનાની બદલાતી લંબાઈ, અને દિવસના સમયના તફાવતોનો હિસાબ રાખવામાં નિષ્ફળ જશો. તો એક database engine સમયને એટલી સમજદારીથી કેવી રીતે બદલે છે કે 31 January માં 'એક મહિનો' ઉમેરવાથી એક અમાન્ય તારીખને બદલે 28 February (કે 29મી) મળે?

Theory

ઘડિયાળ સામે Calendar નું પાનું

SYSDATE ને તમારી કાંડા ઘડિયાળ જેવો વિચારો, જે અત્યારનો બિલકુલ સમય દેખાડે છે. TRUNC અને ROUND જેવાં functions એ ઘડિયાળ ગોઠવવા જેવાં છે: TRUNC એટલે ઘડિયાળને દિવસની શરૂઆતે 'તાળું' મારવું (કલાક/મિનિટ અવગણતાં), જ્યારે ROUND એટલે કાંટાને સૌથી નજીકના કલાક કે મહિના તરફ ધકેલવો. Date functions તમને સમય બદલવાની શક્તિ આપે છે, એને આગળ ખસેડવાની, પાછળ ખસેડવાની, કે સેકન્ડ અને મિલિસેકન્ડની બિનજરૂરી ચોકસાઈ કાપી નાખવાની.

Theory

આવશ્યક Date Function નો ભંડાર

Oracle SQL માં, date ના ફેરફારો એક standard આંતરિક 7-byte રજૂઆત પર બંધાયેલા છે. Function ના પુસ્તકાલય પર પ્રભુત્વ મેળવવાથી તમે નીચેની calendar ની જટિલતાની ચિંતા કર્યા વગર જટિલ અંકગણિત કરી શકો છો.

At a glance

Table 1: BCA laboratory assignments માટે સામાન્ય Oracle Date Functions.

Functionહેતુઉપયોગનું ઉદાહરણ
SYSDATEહાલની system ની તારીખ અને સમય પાછાં આપે છે.SELECT SYSDATE FROM DUAL;
SYSTIMESTAMPહાલની તારીખ, સમય, અને અપૂર્ણાંક સેકન્ડ/time zone પાછાં આપે છે.SELECT SYSTIMESTAMP FROM DUAL;
ADD_MONTHS(d, n)તારીખ d માં n મહિના ઉમેરે છે.ADD_MONTHS(SYSDATE, 1)
MONTHS_BETWEEN(d1, d2)બે તારીખો વચ્ચેના મહિના પાછા આપે છે.MONTHS_BETWEEN(d1, d2)
TRUNC(d, fmt)તારીખને એકમની શરૂઆત સુધી કાપે છે.TRUNC(SYSDATE, 'MM')
NEXT_DAY(d, day)આગળનો નિર્દિષ્ટ વાર શોધે છે.NEXT_DAY(SYSDATE, 'FRIDAY')

Theory

Worked Example: મોડા દંડનું Calculator

ચાલો ગણીએ કે એક student એ પોતાના library ના પુસ્તકની પાછા આપવાની તારીખ કેટલા દિવસ વટાવી છે, અને જો આપણે એમને એક મહિનાનું વધારાનું આપીએ તો એમની નવી છેલ્લી તારીખ નક્કી કરીએ.

Practical

Library Deadline Logic

-- Assume book_due_date is a column in our 'loans' table
-- 1. Calculate how many months past due
SELECT 
    student_id, 
    TRUNC(MONTHS_BETWEEN(SYSDATE, book_due_date)) AS months_late,
    ADD_MONTHS(book_due_date, 1) AS extended_deadline
FROM loans
WHERE SYSDATE > book_due_date;

Copy કરીને Oracle FreeSQL ખોલો
Oracle FreeSQL, Oracle SQL નું મફત online editor છે. Code પહેલા copy થઈ જાય છે: તેને ત્યાં paste કરીને Run કરો.

Think first

ROUND સામે TRUNC નો ફાંદો

જો આજે 15 July, 2026 હોય, તો TRUNC(SYSDATE, 'MM') અને ROUND(SYSDATE, 'MM') નું પરિણામ શું આવશે?

Show the answer

બંને 1 July, 2026 પાછું આપે છે, અને આ ફાંદાનો બિલકુલ એ જ મુદ્દો છે. TRUNC(SYSDATE, 'MM') હંમેશા મહિનાની શરૂઆત સુધી પાછું કાપે છે, તો એ 1 July આપે છે. ROUND(SYSDATE, 'MM') સૌથી નજીકની મહિનાની સીમા સુધી round કરે છે, અને Oracle માત્ર મહિનાની 16મી તારીખથી જ ઉપર round કરે છે. કારણ કે 15મી એ cutoff ની બરાબર પહેલાં આવે છે, ROUND પણ 1 July પર જ ઊતરે છે. જો તારીખ 16 July હોત, તો ROUND આગળ કૂદીને 1 August પર જાત જ્યારે TRUNC 1 July પર જ રહેત.

Quiz

કયું function ખાસ કરીને એક આપેલી તારીખમાંથી આખા મહિના ઉમેરવા કે બાદ કરવા રચાયેલું છે અને સાથે મહિનાની જુદી લંબાઈ અને leap years આપોઆપ સંભાળે છે?

  1. SYSDATE + 30
  2. ADD_MONTHS
  3. MONTHS_BETWEEN
  4. TO_DATE_ADD
Show the answer

ADD_MONTHS

ADD_MONTHS એકમાત્ર એવું function છે જે મહિનાની બદલાતી લંબાઈ અને leap years સાચી રીતે સંભાળે છે. '+ 30' જેવું સાદું અંકગણિત ખાલી 30 દિવસ ઉમેરે છે, જે તમને ધાર્યા કરતાં મહિનાના જુદા દિવસે ઉતારી શકે.

Quiz

SYSDATE અને SYSTIMESTAMP વચ્ચેનો મુખ્ય ભેદ શું છે?

  1. SYSDATE માં time zone ની માહિતી હોય છે, SYSTIMESTAMP માં નહીં.
  2. SYSDATE માત્ર તારીખો માટે છે; SYSTIMESTAMP માં અપૂર્ણાંક સેકન્ડ અને time zone ની માહિતી હોય છે.
  3. Oracle માં એ બંને એકસરખાં છે.
  4. SYSTIMESTAMP માત્ર Oracle નાં જૂનાં versions માટે છે.
Show the answer

SYSDATE માત્ર તારીખો માટે છે; SYSTIMESTAMP માં અપૂર્ણાંક સેકન્ડ અને time zone ની માહિતી હોય છે.

SYSTIMESTAMP ઘણી ઊંચી ચોકસાઈ આપે છે, અપૂર્ણાંક સેકન્ડ અને time zone ના તફાવત પકડતાં, જે transaction ના logging અને performance ના auditing માટે નિર્ણાયક છે.

Watch out

Classic ફાંદો: Date Format ની Strings

TO_CHAR(date, 'format') વાપરતી વખતે, યાદ રાખો કે 'mm' મહિનાઓ માટે છે અને 'mi' મિનિટો માટે છે! Semester ની પરીક્ષાઓમાં એક સામાન્ય ભૂલ છે TO_CHAR(SYSDATE, 'YYYY-MM-DD HH:MM:SS') લખવું, આનાથી મિનિટની જગ્યાએ મહિનાનો code દોહરાવાશે. મિનિટો માટે હંમેશા 'MI' વાપરો!

Theory

Date Functions ને Semester 3 સાથે જોડવા

Date નું અંકગણિત સમજવું એ Semester 3 ના Business Intelligence ના modules નો પાયો છે. તમે આખરે આ જ functions વાપરીને 'Year-over-Year' કે 'Quarter-to-Date' ના વિશ્લેષણાત્મક reports બનાવશો, જ્યાં તારીખની સીમાઓ બદલવી એ રોજિંદી જરૂરિયાત છે.

Summary

Key takeaways

  • SYSDATE હાલની server ની તારીખ/સમય આપે છે; SYSTIMESTAMP ચોકસાઈ અને time zone નો data ઉમેરે છે.
  • TRUNC એક તારીખને નિર્દિષ્ટ એકમની શરૂઆતે જકડી દે છે (દા.ત. મહિનો, વર્ષ).
  • ROUND એક તારીખને સૌથી નજીકની એકમની સીમા પર ખસેડે છે (ઉપર કે નીચે).
  • ADD_MONTHS મહિના-આધારિત તારીખનું અંકગણિત કરવાનો સૌથી સલામત રસ્તો છે.
  • 'MM' (મહિનો) સાથેનો ટકરાવ ટાળવા formatting માં મિનિટો માટે હંમેશા 'MI' વાપરો.
  • Memory Hook: ADD_MONTHS તમારા માટે calendar નું ગણિત સંભાળે છે, જો ટાળી શકાય તો ક્યારેય હાથે આંકડા ન ઉમેરો!

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Advanced SQL

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

DATE Functions (SYSDATE, SYSTIMESTAMP, TO_CHAR, TRUNC, ROUND, NEXT_DAY, LAST_DAY, MONTHS_BETWEEN, ADD_MONTHS) · Concepts of Relational Database Management Systems · Gri-Learn