با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره آموزش SQLite را دنبال می کنند. در فصل قبلی این دوره انواع داده های مختلف در SQLite را به صورت مختصر مورد بررسی قرار دادیم، یکی از داده های بسیار پرکاربرد در هر دیتابیسی، داده های نوع تاریخ و زمان است، تاریخ و زمان را می توان در فرمت های مختلفی در جداول دیتابیس ذخیره نمود، این فرمت ها و قالب ها نسبت به سایر انواع داده گسترده ترند، همچنین SQLite توابعی را نیز برای دستکاری داده های نوع تاریخ و زمان ارائه داده که در ادامه ی این مباحث فرمت و توابع کار با داده های نوع تاریخ و زمان در SQLite را بررسی می کنیم.
در این بخش شما با مباحث فرمت ها ، توابع و مدیفایرهای نوع تاریخ و زمان در SQLite آشنا خواهید شد.
در SQLite از پنج تابع زیر برای دستکاری نوع تاریخ و زمان در SQLite پشتیبانی می کند:
ردیف | تابع | مثال |
---|---|---|
۱ | date(timestring, modifiers…) | برگرداندن تاریخ در فرمت : YYYY-MM-DD |
۲ | time(timestring, modifiers…) | برگرداندن زمان در فرمت HH:MM:SS |
۳ | datetime(timestring, modifiers…) | برگرداندن YYYY-MM-DD HH:MM:SS |
۴ | julianday(timestring, modifiers…) | تعداد روزها را از گرینویچ در ماه نوامبر ۲۴, ۴۷۱۴ B.C برمی گرداند. |
۵ | strftime(timestring, modifiers…) | این تاریخ را با توجه به رشته فرمت مشخص شده به عنوان اولین آرگومان فرمت شده به عنوان هر فرمت توضیح داده شده در زیر نشان می دهد. |
در بخش زیر به شما انواع مختلفی از رشته ها و میدفایرهای زمان را نشان می دهیم :
یک رشته ی زمان را می توان در هر یک از فرمت های زیر قرار داد:
ردیف | رشته ی زمان | مثال |
---|---|---|
۱ | YYYY-MM-DD | ۲۰۱۰-۱۲-۳۰ |
۲ | YYYY-MM-DD HH:MM | ۲۰۱۰-۱۲-۳۰ ۱۲:۱۰ |
۳ | YYYY-MM-DD HH:MM:SS.SSS | ۲۰۱۰-۱۲-۳۰ ۱۲:۱۰:۰۴٫۱۰۰ |
۴ | MM-DD-YYYY HH:MM | ۳۰-۱۲-۲۰۱۰ ۱۲:۱۰ |
۵ | HH:MM | ۱۲:۱۰ |
۶ | YYYY-MM-DDTHH:MM | ۲۰۱۰-۱۲-۳۰ ۱۲:۱۰ |
۷ | HH:MM:SS | ۱۲:۱۰:۰۱ |
۸ | YYYYMMDD HHMMSS | ۲۰۱۰۱۲۳۰ ۱۲۱۰۰۱ |
۹ | now | ۲۰۱۳-۰۵-۰۷ |
شما می توانید از “T” به عنوان کاراکتر جداکننده ی تاریخ و زمان استفاده کنید.
رشته ی زمان را می توان با صفر یا بیشتر اصلاح کرد که تاریخ و / یا زمان بازگشت هر یک از پنج توابع فوق را تغییر می دهد.
مدیفایرهایی که در SQLite در دسترس هستند :
SQLite تابع strftime() را برای فرمت هر تاریخ و زمانی ارائه می دهد.
شما می توانید از جایگزین های زیر برای فرمت تاریخ و زمان استفاده کنید:
جایگزین | توضیحات |
---|---|
%d | روز از ماه, ۰۱-۳۱ |
%f | تمام ثانیه ها, SS.SSS |
%H | ساعت, ۰۰-۲۳ |
%j | روز از سال, ۰۰۱-۳۶۶ |
%J | شماره روز جولین, DDDD.DDDD |
%m | ماه, ۰۰-۱۲ |
%M | دقیقه, ۰۰-۵۹ |
%s | ثانیه ها از ۱۹۷۰-۰۱-۰۱ |
%S | ثانیه ها, ۰۰-۵۹ |
%w | روز از هفته (۰-۶ مثلا ۰ یعنی شنبه) |
%W | هفته از سال, ۰۱-۵۳ |
%Y | سال, YYYY |
%% | % نماد |
دستور زیر تاریخ جاری را محاسبه می کند :
1 2 | sqlite> SELECT date('now'); 2013-05-07 |
دستور زیر آخرین روز از ماه جاری را محاسبه می کند :
1 2 | sqlite> SELECT date('now','start of month','+1 month','-1 day'); 2013-05-31 |
دستور زیر تاریخ و زمان را با برچسب UNIX که ۱۰۹۲۹۴۱۴۶۶ است محاسبه می کند :
1 2 | sqlite> SELECT datetime(1092941466, 'unixepoch'); 2004-08-19 18:51:06 |
دستور زیر تاریخ و زمان را با برچسب UNIX که ۱۰۹۲۹۴۱۴۶۶ است برای timezone محلی شما محاسبه می کند:
1 2 | sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime'); 2004-08-19 13:51:06 |
دستور زیر برچسب UNIX جاری را محاسبه می کند :
1 2 | sqlite> SELECT strftime('%s','now'); 1393348134 |
دستور زیر تعداد روز را از زمان امضای اعلامیه استقلال ایالات متحده محاسبه می کند :
1 2 | sqlite> SELECT julianday('now') - julianday('1776-07-04'); 86798.7094695023 |
دستور زیر تعداد ثانیه ها را از یک لحظه ی خاص در ۲۰۰۴ محاسبه می کند :
1 2 | sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56'); 295001572 |
دستور زیر تاریخ را از اولین سه شنبه ی اکتبر سال جاری محاسبه می کند :
1 2 | sqlite> SELECT date('now','start of year','+9 months','weekday 2'); 2013-10-01 |
دستور زیر زمان را از دوره UNIX در قالب ثانیه ها (مانند (‘strftime(‘%s’,’now بجز بخش کسر) محاسبه می کند.
1 2 | sqlite> SELECT (julianday('now') - 2440587.5)*86400.0; 1367926077.12598 |
برای تبدیل بین فرمت های UTC و زمان محلی در زمان قالب بندی یک تاریخ، از مدیفایرهای utc یا localtime به صورت زیر استفاده کنید :
1 2 | sqlite> SELECT time('12:00', 'localtime'); 05:00:00 |
1 2 | sqlite> SELECT time('12:00', 'utc'); 19:00:00 |
همانطور که گفته شد تاریخ و زمان در SQLite و به طور کلی در هر یک از سیستم های مدیریت دیتابیس، یکی از مهمترین و پرکاربردترین نوع داده ها می باشد، از این رو برای مدیریت و فرمت نوع تاریخ و زمان در SQLite مدیرفایر و توابع مختلفی که در مباحث فوق به آن ها اشاره شده ارائه گردیده است.