تاریخ ها (Dates)
اینجا با «تاریخ ها (Dates)» کار می کنیم. مهم ترین چالش فرمت تاریخ است. اگر فرمت ورودی با ستون یکی نباشد، خطا می گیری. فقط تاریخ ساده باشد، اوضاع راحت تر است. اما وقتی زمان اضافه می شود، مقایسه سخت تر می شود.
انواع داده تاریخ در SQL
MySQL: برای نگهداری تاریخ/زمان از این نوع ها استفاده می کند.
DATE— فرمت YYYY-MM-DDDATETIME— فرمت YYYY-MM-DD HH:MI:SSTIMESTAMP— فرمت YYYY-MM-DD HH:MI:SSYEAR— فرمت YYYY یا YY
SQL Server: برای تاریخ/زمان این نوع ها را دارد.
DATE— فرمت YYYY-MM-DDDATETIME— فرمت YYYY-MM-DD HH:MI:SSSMALLDATETIME— فرمت YYYY-MM-DD HH:MI:SSTIMESTAMP— یک عدد یکتا، نه تاریخ انسانی
هشدار: نوع ستون را هنگام ساخت جدول تعیین می کنی. بعداً تغییرش دردسر دارد.
کار با تاریخ ها: فیلتر برابر ساده
می خواهیم سفارش های با تاریخ 2008-11-11 را برگردانیم. وقتی زمان نداریم، مقایسه ساده است.
SELECT *
FROM Orders
WHERE OrderDate = '2008-11-11';
نکته: اگر ستون زمان هم داشته باشد، این مقایسه نتیجه ای نمی دهد. چون مقدار واقعی مثل 2008-11-11 13:23:44 است.
راهنمای سریع قالب تاریخ ها
- همیشه فرمت ورودی و ستون را هماهنگ کن.
- تا می توانی زمان را جدا نگه دار.
- به جای متن مبهم، تاریخ استاندارد بنویس.
نکته: برای مرورِ همین موضوع، به صفحه تاریخ ها برگرد. برای مقایسه مقادیر عددی خودکار، افزایش خودکار را ببین. همچنین اگر مقدار پیش فرض لازم داری، پیش فرض مفید است.
تمرین گام به گام
- یک ستون
DATEبساز و چند رکورد اضافه کن. - با فیلتر برابرِ تاریخ، داده را بگیر.
- حالا زمان اضافه کن و تفاوت را ببین.
جمع بندی سریع
- تاریخ ها به فرمت حساس اند.
- زمان، مقایسه را سخت می کند.
- نوع درست را از اول انتخاب کن.
- برای سادگی، زمان را جدا نگه دار.