کار با تاریخ‌ها

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Sql-menu.png
موارد آموزشی
بانک اطلاعاتی
۱عبارت CREATE DATABASE
۲عبارت DROP DATABASE
۳پشتیبان‌گیری بانک اطلاعاتی برای SQL Server
۴عبارت CREATE TABLE
۵عبارت DROP TABLE
۶عبارت ALTER TABLE
۷محدودیت‌ها
۸محدودیت NOT NULL
۹محدودیت UNIQUE
۱۰محدودیت PRIMARY KEY
۱۱محدودیت FOREIGN KEY
۱۲محدودیت CHECK
۱۳محدودیت DEFAULT
۱۴عبارت CREATE INDEX
۱۵فیلد افزایش خودکار
۱۶کار با تاریخ‌ها
۱۷Viewها
۱۸تزریق
۱۹میزبانی
مرجع
مثال‌ها

تاریخ‌های SQL

مشکل‌ترین قسمت هنگام کار با تاریخ‌ها اطمینان از این است که قالب بندی (به انگلیسی: Format) تاریخی که می‌خواهید وارد کنید، با قالب بندی ستون تاریخ در بانک اطلاعاتی مطابقت داشته باشد.[۱]

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

نوع داده Date در SQL

MySQL برای ذخیره مقدار تاریخی یا تاریخ/زمانی در بانک اطلاعاتی دارای نوع داده‌های زیر است:

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

SQL Server برای ذخیره مقدار تاریخی یا تاریخ /زمانی دارای نوع داده‌های زیر است:

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

توجه: هنگام ایجاد جدول، نوع داده‌ای ستون‌ها انتخاب می‌شوند.

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

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

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

OrderId ProductName OrderDate
1 Geitost 2008-11-11
2 Camembert Pierrot 2008-11-09
3 Mozzarella di Giovanni 2008-11-11
4 Mascarpone Fabioli 2008-10-29

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

از عبارت SELECT زیر استفاده می‌کنیم:

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

Result-set به شکل زیر خواهد بود:

OrderId ProductName OrderDate
1 Geitost 2008-11-11
3 Mozzarella di Giovanni 2008-11-11

اکنون، فرض می‌کنیم جدول "Orders" به شکل زیر است (به مؤلفه زمان در ستون "OrderDate" دقت کنید):

OrderId ProductName OrderDate
1 Geitost 2008-11-11 13:23:44
2 Camembert Pierrot 2008-11-09 15:45:21
3 Mozzarella di Giovanni 2008-11-11 11:12:01
4 Mascarpone Fabioli 2008-10-29 14:56:59

اگر از عبارت SELECT مشابه بالا استفاده کنیم:

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


هیچ نتیجه‌ای نخواهد داشت! به این دلیل که پرس‌وجو فقط تاریخ‌ها را بدون مؤلفه زمانی جستجو می‌کند.

نکته: برای اینکه پرس‌وجوهایتان ساده و نگهداری آنها آسان باشد، از مؤلفه زمان در تاریخ‌های خود استفاده نکنید!


منابع آموزشی