English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يدعم SQLite خمس وظائف تاريخية زمنية هي:
الترقيم | الوظيفة | مثال |
---|---|---|
1 | date(timestring, modifier, modifier, ...) | سيقوم بإرجاع التاريخ بالتنسيق YYYY-MM-DD. |
2 | time(timestring, modifier, modifier, ...) | سيقوم بإرجاع الوقت بالتنسيق HH:MM:SS. |
3 | datetime(timestring, modifier, modifier, ...) | سيقوم بإرجاع التوقيت بالتنسيق YYYY-MM-DD HH:MM:SS. |
4 | julianday(timestring, modifier, modifier, ...) | هذا سيقوم بتحويل عدد الأيام من منتصف النهار في 24 نوفمبر 4714 قبل الميلاد من التوقيت الزمني لغرينتش. |
5 | strftime(format, timestring, modifier, modifier, ...) | سيقوم هذا بإرجاع التاريخ المformatted بناءً على سلسلة التنسيق المحددة في المعامل الأول. شاهد الشرح أدناه. |
تقوم الخمس وظائف التاريخ والوقت المذكورة أعلاه بتقديم سلسلة الوقت كمعامل. يمكن أن تأتي بعدة معدلات. يمكن أن تأتي وظيفة strftime() أيضًا بسلسلة صيغة كمعامل الأول. سأوضح لك أدناه أنواع سلسلة الوقت المختلفة والمعلمات.
يمكن أن تأخذ سلسلة الوقت أي من الأشكال التالية:
الترقيم | سلسلة الوقت | مثال |
---|---|---|
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 |
يمكنك استخدام "T" كحرف فراز بين التاريخ والوقت.
يمكن إضافة صيغة إلى نهاية سلسلة الوقت،أو يمكن أن تكون هناك عدة صيغ. هذا سيغير التاريخ والوقت المقدمين من قبل الخمس وظائف المذكورة أعلاه. أي وقت يقدمه الخمس وظائف المذكورة أعلاه. يجب استخدام المعدلات من اليسار إلى اليمين،وهنا قائمة بالمعدلات التي يمكن استخدامها في SQLite:
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
يقدم SQLite وظائف مريحة للغاية strftime() لتنسيق أي تاريخ وموعد. يمكنك استخدام التبديل التالي لتنسيق التاريخ والموعد:
الاستبدال | الوصف |
---|---|
%d | اليوم في الشهر،01-31 |
%f | الثواني مع الأجزاء الصغيرة،SS.SSS |
%H | الساعات،00-23 |
%j | اليوم في السنة،001-366 |
%J | رقم اليوم الجولي،DDDD.DDDD |
%m | الشهر،00-12 |
%M | الدقائق،00-59 |
%s | منذ 1970-01-01 بالثواني |
%S | الثواني، 00-59 |
%w | اليوم في الأسبوع، 0-6 (0 هو الأحد) |
%W | الأسبوع في السنة، 01-53 |
%Y | السنة، YYYY |
%% | علامة % |
الآن دعونا نحاول بعض الأمثلة باستخدام وسم SQLite. الجملة التالية بحساب التاريخ الحالي.
sqlite> SELECT date('now'); 2013-05-07
الجملة التالية بحساب آخر يوم في الشهر الحالي.
sqlite> SELECT date('now','start of month','+1 month','-1 day'); 2013-05-31
الجملة التالية بحساب تاريخ ووقت UNIX المحدد 1092941466.
sqlite> SELECT datetime(1092941466, 'unixepoch'); 2004-08-19 18:51:06
الجملة التالية بحساب تاريخ ووقت UNIX المحدد 1092941466 مع تعويض منطقتك الزمنية المحلية.
sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime'); 2004-08-19 13:51:06
الجملة التالية بحساب توقيت UNIX الحالي.
sqlite> SELECT strftime('%s','now'); 1393348134
الجملة التالية بحساب عدد الأيام منذ إعلان استقلال الولايات المتحدة.
sqlite> SELECT julianday('now') - julianday('1776-07-04'); 86798.7094695023
الجملة التالية بحساب عدد الثواني منذ لحظة معينة في عام 2004.
sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56'); 295001572
الجملة التالية بحساب تاريخ أول يوم إثنين في أكتوبر من هذا العام.
sqlite> SELECT date('now','start of year','+9 months','weekday 2'); 2013-10-01
الجملة التالية بحساب الوقت منذ عصر UNIX بالأثنا عشر ساعة (مثل strftime('%s'،'now')، لكن يشمل جزءًا عشريًا).
sqlite> SELECT (julianday('now') - 2440587.5)*86400.0; 1367926077.12598
لتحويل بين قيم التاريخ والوقت بين UTC والوقت المحلي، استخدم المدمجين utc أو localtime، كما يلي:
sqlite> SELECT time('12:00', 'localtime'); 05:00:00
sqlite> SELECT time('12:00', 'utc'); 19:00:00