In [2]:
# https://www.plus2net.com/python/download/sqlite-date-query.html
import sqlite3
my_conn = sqlite3.connect('test2_db') # Change your database name here
print("Connected to database successfully")
Connected to database successfully
In [53]:
# todays record 
query="SELECT * FROM dt_table WHERE date=date('now')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('0', '2020-08-19', 'Aug-2020')
In [6]:
# yesterday record
query="SELECT * FROM dt_table WHERE date=date('now','-1 day')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('1', '2020-08-18', 'Aug-2020')
In [7]:
# tomorrow record
query="SELECT * FROM dt_table WHERE date=date('now','1 day')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('-1', '2020-08-20', 'Aug-2020')
In [54]:
# previous 5 days record with future records 
query="SELECT * FROM dt_table WHERE date>=date('now','-5 day')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('-15', '2020-09-03', 'Sep-2020')
('-14', '2020-09-02', 'Sep-2020')
('-13', '2020-09-01', 'Sep-2020')
('-12', '2020-08-31', 'Aug-2020')
('-11', '2020-08-30', 'Aug-2020')
('-10', '2020-08-29', 'Aug-2020')
('-9', '2020-08-28', 'Aug-2020')
('-8', '2020-08-27', 'Aug-2020')
('-7', '2020-08-26', 'Aug-2020')
('-6', '2020-08-25', 'Aug-2020')
('-5', '2020-08-24', 'Aug-2020')
('-4', '2020-08-23', 'Aug-2020')
('-3', '2020-08-22', 'Aug-2020')
('-2', '2020-08-21', 'Aug-2020')
('-1', '2020-08-20', 'Aug-2020')
('0', '2020-08-19', 'Aug-2020')
('1', '2020-08-18', 'Aug-2020')
('2', '2020-08-17', 'Aug-2020')
('3', '2020-08-16', 'Aug-2020')
('4', '2020-08-15', 'Aug-2020')
('5', '2020-08-14', 'Aug-2020')
In [55]:
# previous 2 days record ( upto today only), no future dates included.
query="SELECT * FROM dt_table WHERE date between date('now','-2 day') AND date('now')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('0', '2020-08-19', 'Aug-2020')
('1', '2020-08-18', 'Aug-2020')
('2', '2020-08-17', 'Aug-2020')
In [56]:
# Display all records of next 3 days ( no previous dates )
query="SELECT * FROM dt_table WHERE date between date('now') AND date('now','3 day')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('-3', '2020-08-22', 'Aug-2020')
('-2', '2020-08-21', 'Aug-2020')
('-1', '2020-08-20', 'Aug-2020')
('0', '2020-08-19', 'Aug-2020')
In [10]:
# previous 10 days to previous 5 days record .
query="SELECT * FROM dt_table WHERE date between date('now','-10 day') AND date('now','-5 day')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('5', '2020-08-14', 'Aug-2020')
('6', '2020-08-13', 'Aug-2020')
('7', '2020-08-12', 'Aug-2020')
('8', '2020-08-11', 'Aug-2020')
('9', '2020-08-10', 'Aug-2020')
('10', '2020-08-09', 'Aug-2020')
In [57]:
# Display  all records of next 5 days to next 10 days
query="SELECT * FROM dt_table WHERE date between date('now','5 day') AND date('now','10 day')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('-10', '2020-08-29', 'Aug-2020')
('-9', '2020-08-28', 'Aug-2020')
('-8', '2020-08-27', 'Aug-2020')
('-7', '2020-08-26', 'Aug-2020')
('-6', '2020-08-25', 'Aug-2020')
('-5', '2020-08-24', 'Aug-2020')
In [48]:
# all records of current calendar month 
query="SELECT * FROM dt_table WHERE strftime('%m',date) = strftime('%m','now')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('-12', '2020-08-31', 'Aug-2020')
('-11', '2020-08-30', 'Aug-2020')
('-10', '2020-08-29', 'Aug-2020')
('-9', '2020-08-28', 'Aug-2020')
('-8', '2020-08-27', 'Aug-2020')
('-7', '2020-08-26', 'Aug-2020')
('-6', '2020-08-25', 'Aug-2020')
('-5', '2020-08-24', 'Aug-2020')
('-4', '2020-08-23', 'Aug-2020')
('-3', '2020-08-22', 'Aug-2020')
('-2', '2020-08-21', 'Aug-2020')
('-1', '2020-08-20', 'Aug-2020')
('0', '2020-08-19', 'Aug-2020')
('1', '2020-08-18', 'Aug-2020')
('2', '2020-08-17', 'Aug-2020')
('3', '2020-08-16', 'Aug-2020')
('4', '2020-08-15', 'Aug-2020')
('5', '2020-08-14', 'Aug-2020')
('6', '2020-08-13', 'Aug-2020')
('7', '2020-08-12', 'Aug-2020')
('8', '2020-08-11', 'Aug-2020')
('9', '2020-08-10', 'Aug-2020')
('10', '2020-08-09', 'Aug-2020')
('11', '2020-08-08', 'Aug-2020')
('12', '2020-08-07', 'Aug-2020')
('13', '2020-08-06', 'Aug-2020')
('14', '2020-08-05', 'Aug-2020')
('15', '2020-08-04', 'Aug-2020')
('16', '2020-08-03', 'Aug-2020')
In [58]:
# all records of previous  calendar month
query="SELECT * FROM dt_table WHERE strftime('%m',date) = strftime('%m','now','-1 month')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
In [52]:
# all records of current calendar month till today ( 1st day till today)
query="SELECT * FROM dt_table WHERE date between strftime('%Y-%m-01','now') and strftime('%Y-%m-%d','now')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('0', '2020-08-19', 'Aug-2020')
('1', '2020-08-18', 'Aug-2020')
('2', '2020-08-17', 'Aug-2020')
('3', '2020-08-16', 'Aug-2020')
('4', '2020-08-15', 'Aug-2020')
('5', '2020-08-14', 'Aug-2020')
('6', '2020-08-13', 'Aug-2020')
('7', '2020-08-12', 'Aug-2020')
('8', '2020-08-11', 'Aug-2020')
('9', '2020-08-10', 'Aug-2020')
('10', '2020-08-09', 'Aug-2020')
('11', '2020-08-08', 'Aug-2020')
('12', '2020-08-07', 'Aug-2020')
('13', '2020-08-06', 'Aug-2020')
('14', '2020-08-05', 'Aug-2020')
('15', '2020-08-04', 'Aug-2020')
('16', '2020-08-03', 'Aug-2020')
In [19]:
# all records of next  calendar month
query="SELECT * FROM dt_table WHERE strftime('%m',date) = strftime('%m','now','1 month')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('-15', '2020-09-03', 'Sep-2020')
('-14', '2020-09-02', 'Sep-2020')
('-13', '2020-09-01', 'Sep-2020')
In [59]:
# all records of current year 
query="SELECT * FROM dt_table WHERE strftime('%Y',date) = strftime('%Y','now')"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('-15', '2020-09-03', 'Sep-2020')
('-14', '2020-09-02', 'Sep-2020')
('-13', '2020-09-01', 'Sep-2020')
('-12', '2020-08-31', 'Aug-2020')
('-11', '2020-08-30', 'Aug-2020')
('-10', '2020-08-29', 'Aug-2020')
('-9', '2020-08-28', 'Aug-2020')
('-8', '2020-08-27', 'Aug-2020')
('-7', '2020-08-26', 'Aug-2020')
('-6', '2020-08-25', 'Aug-2020')
('-5', '2020-08-24', 'Aug-2020')
('-4', '2020-08-23', 'Aug-2020')
('-3', '2020-08-22', 'Aug-2020')
('-2', '2020-08-21', 'Aug-2020')
('-1', '2020-08-20', 'Aug-2020')
('0', '2020-08-19', 'Aug-2020')
('1', '2020-08-18', 'Aug-2020')
('2', '2020-08-17', 'Aug-2020')
('3', '2020-08-16', 'Aug-2020')
('4', '2020-08-15', 'Aug-2020')
('5', '2020-08-14', 'Aug-2020')
('6', '2020-08-13', 'Aug-2020')
('7', '2020-08-12', 'Aug-2020')
('8', '2020-08-11', 'Aug-2020')
('9', '2020-08-10', 'Aug-2020')
('10', '2020-08-09', 'Aug-2020')
('11', '2020-08-08', 'Aug-2020')
('12', '2020-08-07', 'Aug-2020')
('13', '2020-08-06', 'Aug-2020')
('14', '2020-08-05', 'Aug-2020')
('15', '2020-08-04', 'Aug-2020')
('16', '2020-08-03', 'Aug-2020')
In [30]:
# all records of present week 
query="SELECT * FROM dt_table WHERE strftime('%W',date) = strftime('%W','now') "
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('-4', '2020-08-23', 'Aug-2020')
('-3', '2020-08-22', 'Aug-2020')
('-2', '2020-08-21', 'Aug-2020')
('-1', '2020-08-20', 'Aug-2020')
('0', '2020-08-19', 'Aug-2020')
('1', '2020-08-18', 'Aug-2020')
('2', '2020-08-17', 'Aug-2020')
In [37]:
# all records of next week 
query="SELECT *  FROM dt_table WHERE CAST(strftime('%W',date) AS INTEGER) = CAST(strftime('%W','now') AS INTEGER) + 1 "
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('-11', '2020-08-30', 'Aug-2020')
('-10', '2020-08-29', 'Aug-2020')
('-9', '2020-08-28', 'Aug-2020')
('-8', '2020-08-27', 'Aug-2020')
('-7', '2020-08-26', 'Aug-2020')
('-6', '2020-08-25', 'Aug-2020')
('-5', '2020-08-24', 'Aug-2020')
In [60]:
# all records of first week of the year  
query="SELECT *  FROM dt_table WHERE CAST(strftime('%W',date) AS INTEGER) =  1 "
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
In [38]:
# all records of previous week ( add year if other years are included.)
query="SELECT *  FROM dt_table WHERE CAST(strftime('%W',date) AS INTEGER) = CAST(strftime('%W','now') AS INTEGER) - 1 "
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('3', '2020-08-16', 'Aug-2020')
('4', '2020-08-15', 'Aug-2020')
('5', '2020-08-14', 'Aug-2020')
('6', '2020-08-13', 'Aug-2020')
('7', '2020-08-12', 'Aug-2020')
('8', '2020-08-11', 'Aug-2020')
('9', '2020-08-10', 'Aug-2020')
In [39]:
query="SELECT *  FROM dt_table WHERE strftime('%Y', date)=strftime('%Y','now') "
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('-15', '2020-09-03', 'Sep-2020')
('-14', '2020-09-02', 'Sep-2020')
('-13', '2020-09-01', 'Sep-2020')
('-12', '2020-08-31', 'Aug-2020')
('-11', '2020-08-30', 'Aug-2020')
('-10', '2020-08-29', 'Aug-2020')
('-9', '2020-08-28', 'Aug-2020')
('-8', '2020-08-27', 'Aug-2020')
('-7', '2020-08-26', 'Aug-2020')
('-6', '2020-08-25', 'Aug-2020')
('-5', '2020-08-24', 'Aug-2020')
('-4', '2020-08-23', 'Aug-2020')
('-3', '2020-08-22', 'Aug-2020')
('-2', '2020-08-21', 'Aug-2020')
('-1', '2020-08-20', 'Aug-2020')
('0', '2020-08-19', 'Aug-2020')
('1', '2020-08-18', 'Aug-2020')
('2', '2020-08-17', 'Aug-2020')
('3', '2020-08-16', 'Aug-2020')
('4', '2020-08-15', 'Aug-2020')
('5', '2020-08-14', 'Aug-2020')
('6', '2020-08-13', 'Aug-2020')
('7', '2020-08-12', 'Aug-2020')
('8', '2020-08-11', 'Aug-2020')
('9', '2020-08-10', 'Aug-2020')
('10', '2020-08-09', 'Aug-2020')
('11', '2020-08-08', 'Aug-2020')
('12', '2020-08-07', 'Aug-2020')
('13', '2020-08-06', 'Aug-2020')
('14', '2020-08-05', 'Aug-2020')
('15', '2020-08-04', 'Aug-2020')
('16', '2020-08-03', 'Aug-2020')
In [46]:
# all working days of current week , add year in condition if required
query="SELECT * FROM dt_table WHERE strftime('%W', date)=strftime('%W','now') and \
       CAST(strftime('%w',date) AS INTEGER) BETWEEN 1 AND 5"
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('-2', '2020-08-21', 'Aug-2020')
('-1', '2020-08-20', 'Aug-2020')
('0', '2020-08-19', 'Aug-2020')
('1', '2020-08-18', 'Aug-2020')
('2', '2020-08-17', 'Aug-2020')
In [47]:
# all working days upto today of current week , add year in condition if required
query="SELECT * FROM dt_table WHERE strftime('%W', date)=strftime('%W','now') and \
       CAST(strftime('%w',date) AS INTEGER) BETWEEN 1 AND CAST(strftime('%w','now') AS INTEGER) "
r_set=my_conn.execute(query)
for row in r_set:
    print(row)
('0', '2020-08-19', 'Aug-2020')
('1', '2020-08-18', 'Aug-2020')
('2', '2020-08-17', 'Aug-2020')
In [ ]: