توابع تاریخ SQL
SQL تاریخ
جب ہم تاریخ سے معاملہ کرتے ہیں تو سب سے دشوار کام یہ ہوتا ہے کہ یقین رکھنا کہ درج کی گئی تاریخ کا فارمات، دیتابیس میں تاریخ کی سطر کا فارمات سے ماتحتاج ہو。
جب تک کہ دیتا میں صرف تاریخ حصہ شامل ہوا ہو، کوئی مسئلہ نہیں آئیگا، لیکن اگر وقت کا حصہ شامل ہوا تو معاملہ کچھ پیچیدہ بن جائیگا。
تاریخ کی جستجو کی پیچیدگی کا تبصرہ کرنے سے پہلے، ہم سب سے اہم اندرون کار تاریخ فنکشن دیکھیں。
MySQL تاریخ فنکشن
درج ذیل ٹیبل میں MySQL میں سب سے اہم اندرون کار تاریخ فنکشن درج ہیں:
فنکشن | وصف |
---|---|
NOW() | موجودہ تاریخ اور وقت کا بر آمد کرنا |
CURDATE() | موجودہ تاریخ کا بر آمد کرنا |
CURTIME() | موجودہ وقت کا بر آمد کرنا |
DATE() | تاریخ یا تاریخ/وقت کی جملے کا تاریخ حصہ نکالنا |
EXTRACT() | تاریخ/وقت کا علیحدہ علیحدہ حصہ بر آمد کرنا |
DATE_ADD() | تاریخ پر مخصوص وقت کی کچھ کا اضافہ کرنا |
DATE_SUB() | تاریخ سے مخصوص وقت کی کچھ کا چوکیدگی کرنا |
DATEDIFF() | دو تاریخ کے درمیان دنوں کی تعداد بر آمد کرنا |
DATE_FORMAT() | تاریخ/وقت کا مختلف فارمات میں دکھانا |
SQL Server تاریخ فنکشن
درج ذیل ٹیبل میں SQL Server میں سب سے اہم اندرون کار تاریخ فنکشن درج ہیں:
فنکشن | وصف |
---|---|
GETDATE() | موجودہ تاریخ اور وقت کا بر آمد کرنا |
DATEPART() | تاریخ/وقت کا علیحدہ علیحدہ حصہ بر آمد کرنا |
DATEADD() | تاریخ میں مخصوص وقت کی کچھ کا اضافہ یا کچھ کی کچھ کا چوکیدگی کرنا |
DATEDIFF() | دو تاریخ کے درمیان وقت کی فرق بر آمد کرنا |
CONVERT() | تاریخ/وقت کا مختلف فارمات میں دکھانا |
SQL تاریخ کا ڈیٹا ٹائپ
MySQL دا دیتابیس میں تاریخ یا تاریخ/وقت کی اعداد کا ذخیرہ کرنے کیلئے مندرجہ ذیل ڈیٹا ٹائپ استعمال کرتا ہے:
- DATE - فارمٹ YYYY-MM-DD
- DATETIME - فارمٹ: YYYY-MM-DD HH:MM:SS
- TIMESTAMP - فارمٹ: YYYY-MM-DD HH:MM:SS
- YEAR - فارمٹ YYYY یا YY
SQL Server کوئی باتوں کا استعمال کرتا ہے تاکہ بجائی یا تاریخ/وقت کا برق کا برق بجائی جائے:
- DATE - فارمٹ YYYY-MM-DD
- DATETIME - فارمٹ: YYYY-MM-DD HH:MM:SS
- SMALLDATETIME - فارمٹ: YYYY-MM-DD HH:MM:SS
- TIMESTAMP - فارمٹ: یگنا شمار
SQL تاریخ کا معاملہ
اگر وقت کا حصہ نہیں شامل ہو، تو دو تاریخوں کو آسان طور پر مقابلو کیا جاسکتا ہے!
اب تصور کریں کہ ہم اس طرح کا "Orders" جدول رکھتے ہیں:
OrderId | ProductName | OrderDate |
---|---|---|
1 | کمپیوٹر | 2008-12-26 |
2 | پرنٹر | 2008-12-26 |
3 | الیکٹروگراف | 2008-11-12 |
4 | ٹیلی فون | 2008-10-19 |
اب، ہم چاہتے ہیں کہ اس جدول سے OrderDate کا ریکارڈ '2008-12-26' سے چکائیں۔
ہم اس سے SELECT جملہ استعمال کریں گے:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
نتائج کا مجموعہ:
OrderId | ProductName | OrderDate |
---|---|---|
1 | کمپیوٹر | 2008-12-26 |
3 | الیکٹروگراف | 2008-12-26 |
اب تصور کریں کہ "Orders" کا سلسلہ ایسا ہے (لطفاً "OrderDate" کی سطر میں وقت کا حصہ دیکھیئے):
OrderId | ProductName | OrderDate |
---|---|---|
1 | کمپیوٹر | 2008-12-26 16:23:55 |
2 | پرنٹر | 2008-12-26 10:45:26 |
3 | الیکٹروگراف | 2008-11-12 14:12:08 |
4 | ٹیلی فون | 2008-10-19 12:56:10 |
اگر ہم اس سے SELECT جملہ استعمال کریں گے:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
تو ہم نہیں مل سکتے نتائج، یہ اس وجہ سے ہے کہ اس کوئی وقت کا حصہ نہیں رکھا گیا تھا۔
اتنائی:اگر آپ چاہتے ہیں کہ کوئی جستجو سادہ اور آسان براہ ملاک رہ جائے تو تاریخ میں وقت کا حصہ استعمال نہ کریں!