فصل سی و نهم :
Date & Time در SQLite
SQLite از 5 تابع تاریخ و زمان ذیل پشتیبانی میکند :
مثال
|
function
|
تاریخ را به فرمت : YYYY-MM-DD باز میگرداند
|
date(timestring, modifiers...)
|
زمان را به فرمت : HH:MM:SS باز میگرداند
|
time(timestring, modifiers...)
|
تاریخ و زمان را به فرمت کامل:
YYYY-MM-DD HH:MM:SS باز میگرداند
|
datetime(timestring, modifiers...)
|
تعداد روزهای طی شده بعد از ظهر24 نوامبر 4714 قبل از میلاد را باز میگرداند در گرینویچ لندن
|
julianday(timestring, modifiers...)
|
تاریخ فرمت شده ایی را با توجه به الگوی مشخصی باز میگرداند که در پارامتر اول انرا مشخص میکنیم
|
strftime(timestring, modifiers...)
|
در جدول ذیل time string ها به همراه مثال درج شده اند :
S.N.
|
Time String
|
Example
|
1
|
YYYY-MM-DD
|
2010-12-30
|
2
|
YYYY-MM-DD HH:MM
|
2010-12-30 12:10
|
3
|
YYYY-MM-DD HH:MM:SS.SSS
|
2010-12-30 12:10:04.100
|
4
|
MM-DD-YYYY HH:MM
|
30-12-2010 12:10
|
5
|
HH:MM
|
12:10
|
6
|
YYYY-MM-DDTHH:MM
|
2010-12-30 12:10
|
7
|
HH:MM:SS
|
12:10:01
|
8
|
YYYYMMDD HHMMSS
|
20101230 121001
|
9
|
now
|
2013-05-07
|
حالا Modifier ها که پارامتر دوم 5 تابع ما بودند :
• NNN days
• NNN hours
• NNN minutes
• NNN.NNNN seconds
• NNN months
• NNN years
• start of month
• start of year
• start of day
• weekday N
• unixepoch
• localtime
• utc
Formatters
SQLite تابع بسیار مفیدی را فراهم میکند بنام : strftime() که برای فرمت کردن انواع تاریخ و زمان کاربرد دارد.که از الگو های ذیل برای فرمت تاریخ و زمان استفاده میکند.
Substitution
|
Description
|
%d
|
Day of month, 01-31
|
%f
|
Fractional seconds, SS.SSS
|
%H
|
Hour, 00-23
|
%j
|
Day of year, 001-366
|
%J
|
Julian day number, DDDD.DDDD
|
%m
|
Month, 00-12
|
%M
|
Minute, 00-59
|
%s
|
Seconds since 1970-01-01
|
%S
|
Seconds, 00-59
|
%w
|
Day of week, 0-6 (0 is Sunday)
|
%W
|
Week of year, 01-53
|
%Y
|
Year, YYYY
|
%%
|
% symbol
|
مثال :
sqlite> SELECT date('now');
2013-05-07
مشاهده تاریخ کنونی سیستم
sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31
محاسبه اخرین روز از ماه جاری
sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06
sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 13:51:06
sqlite> SELECT strftime('%s','now');
1393348134
sqlite> SELECT julianday('now') - julianday('1776-07-04');
86798.7094695023
sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572
مفاهیم و موضوعات این فصل عبارتند از :