سبد (0)

آموزش‌های پیشنهادی فرادرس

تاریخ در SQL

تاریخ در SQL

Wiki

سخت ترین قسمت کار با Date این است که مطمئن شویم فرمت تاریخی که شما سعی می کنید وارد کنید با فرمت ستون تاریخ در پایگاه داده هم خوانی داشته باشد.

تا زمانی که داده فقط شامل تاریخ باشد، Query شما همان طور که انتظار دارید کار خواهد کرد. اما اگر با بخش زمان درگیر شوید، کار کمی پیچیده خواهد شد.

قبل از صحبت درباره پیچیدگی های کار با تاریخ، توابع مهم آن را با هم مرور می کنیم:


توابع تاریخ در MySQL

Wiki

جدول زیر، لیستی از مهم ترین توابع تاریخ در MySQL است:

تابعتوضیحات
NOW()تاریخ و زمان جاری را برمی گرداند
CURDATE()تاریخ جاری را برمی گرداند
CURTIME()زمان جاری را برمی گرداند
DATE()بخش تاریخ را از یک عبارت date/time بیرون می کشد
EXTRACT()یکی از بخش های عبارت date/time مانند سال، ماه، روز، ساعت و ... را برمی گرداند
DATE_ADD()یک فاصله زمانی مشخص را به تاریخ  اضافه می کند
DATE_SUB()یک فاصله زمانی مشخص را از تاریخ کم می کند
DATEDIFF()تعداد روز بین دو تاریخ را برمی گرداند
DATE_FORMAT()نمایش تاریخ و زمان در فرمت های مختلف

توابع تاریخ در SQL Server

Wiki

جدول زیر، لیستی از مهم ترین توابع تاریخ در SQL Server است:

تابعتوضیحات
GETDATE()تاریخ و زمان جاری را برمی گرداند
DATEPART()یکی از بخش های عبارت date/time مانند سال، ماه، روز، ساعت و ... را برمی گرداند
DATEADD()یک فاصله زمانی مشخص را به تاریخ اضافه یا کم می کند
DATEDIFF()زمان بین دو تاریخ را برمی گرداند
CONVERT()نمایش تاریخ و زمان در فرمت های مختلف

انواع داده های تاریخ در SQL

Wiki

MySQL:

  • DATE - format YYYY-MM-DD
  • DATETIME - format: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - format: YYYY-MM-DD HH:MM:SS
  • YEAR - format YYYY or YY

SQL Server:

  • DATE - format YYYY-MM-DD
  • DATETIME - format: YYYY-MM-DD HH:MM:SS
  • SMALLDATETIME - format: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - format: a unique number

توجه: زمانی که یک جدول جدید تعریف می کنید باید برای هر ستون، Data Type آنرا مشخص کنید.

اگر مایل هستید کلیه ی انواع داده را مرور کنید به مطلب SQL Data Types مراجعه نمایید.


کار با تاریخ در SQL

Wiki

توجه: اگر خودتان را با بخش زمان درگیر نکنید، براحتی می توانید دو تاریخ مختلف را با هم مقایسه کنید!

فرض کنید جدول "Orders" را داریم:

OrderIdProductNameOrderDate
1Geitost2008-11-11
2Camembert Pierrot2008-11-09
3Mozzarella di Giovanni2008-11-11
4Mascarpone Fabioli2008-10-29

حالا می خواهیم رکوردهایی با تاریخ "2008-11-11" را انتخاب کنیم.

از Query زیر استفاده می کنیم:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

نتیجه به شکل زیر خواهد بود:

OrderIdProductNameOrderDate
1Geitost2008-11-11
3Mozzarella di Giovanni2008-11-11

حالا، فرض کنید که جدول "Orders" شبیه زیر باشد. (بخش زمان به فیلد OrderDate اضافه شده است)

OrderIdProductNameOrderDate
1Geitost2008-11-11 13:23:44
2Camembert Pierrot2008-11-09 15:45:21
3Mozzarella di Giovanni2008-11-11 11:12:01
4Mascarpone Fabioli2008-10-29 14:56:59

اگر از Query بالا استفاده کنیم نتیجه ای نخواهیم داشت، بنابراین اگر می خواهید Queryی ساده ای داشته باشید، اجازه ندهید بخش زمان در تاریخ وارد شود.

توجه: در SQL Server با استفاده از تابع ()substring می توان قسمت تاریخ را بیرون کشید و سپس مقایسه کرد.

SELECT * FROM Orders WHERE substring(OrderDate,1,10)='2008-11-11'

برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه داده SQLServer کلیک کنید.

آموزش صوتی SQL

بستن
مدرس:
سوال و جواب:

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehiمجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامیپرداخت آنلاین -  بانک ملتمعرفی بیاموز در شبکه سهپرداخت آنلاین - بانک اقتصاد نوینپرداخت آنلاین - بانک سامان