SQLite strftime Function
The SQLite strftime function is a very powerful function which facilitates you to fetch date and time and also perform date calculation.  
Syntax: 
strftime(format, timestring [, modifier1, modifier2, ... modifier_n ] ) 
  
Here, format can be any of the following: 
| Index | 
format | 
Explanation | 
 
| 1) | 
%Y | 
Year as 4 digits (0000 to 9999) | 
 
| 2) | 
%W | 
Week of year (00 to 53) | 
 
| 3) | 
%w | 
Day of week (0 to 6, where 0 is Sunday) | 
 
| 4) | 
%m | 
Month of year (01 to 12) | 
 
| 5) | 
%d | 
Day of month (00 to 31) | 
 
| 6) | 
%H | 
Hour (00 to 24) | 
 
| 7) | 
%M | 
Minute (00 to 25) | 
 
| 8) | 
%S | 
Seconds (00 to 59) | 
 
| 9) | 
%s | 
Seconds since 1970-01-01 | 
 
| 10) | 
%f | 
Fractional seconds (SS.SSS) | 
 
| 11) | 
%j | 
Day of year (001 to 366) | 
 
| 12) | 
%J | 
Julian day as a numeric value | 
 
 
Here, timestring is a date value which can be anyone of the following:  
| Index | 
timestring | 
Description | 
 
| 1) | 
now | 
It is a literal used to return the current date. | 
 
| 2) | 
YYYY-MM-DD | 
It specifies the date value formatted as 'YYYY-MM-DD' | 
 
| 3) | 
YYYY-MM-DD HH:MM | 
 It specifies the date value formatted as 'YYYY-MM-DD HH:MM' | 
 
| 4) | 
YYYY-MM-DD HH:MM:SS | 
 It specifies the date value formatted as 'YYYY-MM-DD HH:MM:SS' | 
 
| 5) | 
YYYY-MM-DD HH:MM:SS.SSS | 
 It specifies the date value formatted as 'YYYY-MM-DD HH:MM:SS.SSS' | 
 
| 6) | 
HH:MM | 
 It specifies the date value formatted as 'HH:MM' | 
 
| 7) | 
HH:MM:SS | 
 It specifies the date value formatted as 'HH:MM:SS' | 
 
| 8) | 
HH:MM:SS.SSS | 
 It specifies the date value formatted as 'HH:MM:SS.SSS' | 
 
| 9) | 
YYYY-MM-DDTHH:MM | 
 It specifies the date value formatted as 'YYYY-MM-DDTHH:MM' where t is a literal character separating the date and time portions. | 
 
| 10) | 
YYYY-MM-DDTHH:MM:SS | 
 It specifies the date value formatted as 'YYYY-MM-DDTHH:MM:SS' where t is a literal character separating the date and time portions | 
 
| 11) | 
YYYY-MM-DDTHH:MM:SS.SSS | 
 It specifies the date value formatted as 'YYYY-MM-DDTHH:MM:SS.SSS' where t is a literal character separating the date and time portions | 
 
| 12) | 
DDDDDDDDDD | 
 It specifies the Julian date number | 
 
 
modifier1, modifier2, ... modifier_n: modifiers are optional. These are used with timestring to add or subtract time, date or years.  
| Index | 
Modifier | 
Description | 
 
| 1) | 
 [+-]NNN years  | 
 It is used to specify number of years added/subtracted to the date  | 
 
| 2) | 
 [+-]NNN months  | 
 It is used to specify number of months added/subtracted to the date  | 
 
| 3) | 
 [+-]NNN days  | 
 It is used to specify number of days added/subtracted to the date  | 
 
| 4) | 
 [+-]NNN hours  | 
 It is used to specify number of hours added/subtracted to the date  | 
 
| 5) | 
 [+-]NNN minutes  | 
 It is used to specify number of minutes added/subtracted to the date  | 
 
| 6) | 
 [+-]NNN seconds  | 
 It is used to specify number of seconds added/subtracted to the date  | 
 
| 7) | 
 [+-]NNN.NNNN seconds  | 
 It is used to specify number of seconds (and fractional seconds) added/subtracted to the date  | 
 
| 8) | 
 start of year  | 
 It is used to shift the date back to the start of the year  | 
 
| 9) | 
 start of month  | 
 It is used to shift the date back to the start of the month  | 
 
| 10) | 
 start of day  | 
 It is used to shift the date back to the start of the day  | 
 
| 11) | 
 weekday N  | 
 It is used to move the date forward to the next date where weekday number is N
(0=Sunday, 1=Monday, 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday)  | 
 
| 12) | 
 unixepoch  | 
It is used with the DDDDDDDDDD timestring to interpret the date as UNIX Time (ie: number of seconds since 1970-01-01)  | 
 
| 13) | 
 localtime  | 
 It is used to adjust date to localtime, assuming the timestring was expressed in UTC  | 
 
| 14) | 
 utc  | 
 It is used to adjust date to utc, assuming the timestring was expressed in localtime  | 
 
 
Example1: Retrieve Current Date:  
SELECT strftime('%Y %m %d', 'now');
SELECT strftime('%Y-%m-%d %H:%M', 'now');
 
Output: 
 
 
Example2: Retrieve First day of the month: 
SELECT strftime('%Y-%m-%d', '2017-04-14', 'start of month');
SELECT strftime('%Y-%m-%d', 'now', 'start of month');
SELECT strftime('%Y-%m-%d', '2017-03-07', '-6 days');
SELECT strftime('%Y-%m-%d', 'now', '-13 days');
 
Output: 
 
 
 
 
Example2: Retrieve Last day of the month: 
SELECT strftime('%Y-%m-%d', '2017-03-07', 'start of month', '+1 month', '-1 day'); 
SELECT strftime('%Y-%m-%d', 'now', 'start of month', '+1 month', '-1 day');
SELECT strftime('%Y-%m-%d', '2017-03-07', '+24 days');
SELECT strftime('%Y-%m-%d', 'now', '+24 days');
 
Output: 
 
 
 
 
Example3: Add/ Subtract years and days: 
SELECT strftime('%Y-%m-%d', '2017-04-14', '+2 years');
SELECT strftime('%Y-%m-%d', 'now', '-2 years');
SELECT strftime('%Y-%m-%d', '2017-04-14', '+7 days');
SELECT strftime('%Y-%m-%d', 'now', '-10 days'); 
 
Output: 
 
 
 
 
 
  
  
 |