如果我有一个包含以下内容的表:
table_id id_from_other_table date_time_when_this_row_was_added
[(1, 200, '2023-01-06 08-11-21')]
[(2, 200, '2023-01-07 07-21-21')]
[(3, 200, '2023-01-07 08-10-10')]
我是否可以获取在今天的日期创建的所有行,这些行来自:
today_date = datetime.datetime.now().strftime("%Y-%m-%d")
尽管该列中的值的时间格式是这种时间格式?:
datetime.datetime.now().strftime("%Y-%m-%d %H-%M-%S")
我的查询如下:
id = 200
today_date = datetime.datetime.now().strftime("%Y-%m-%d")
query = 'SELECT * FROM table WHERE id = ? AND date_time_when_this_row_was_added LIKE ?%'
cursor.execute(query, (id, today_date)
但是返回的列表是空的。我想要的是获取今天创建的所有行(如果有的话),并返回今天创建的最新行。我知道如何获取今天创建的最新行,但我不知道如何获取今天创建的所有行(无论时间如何)。
我也尝试了此查询,返回的列表仍然为空:
id = 200
today_date = datetime.datetime.now().strftime("%Y-%m-%d")
query = 'SELECT * FROM table WHERE id = ? AND DATE(date_time_when_this_row_was_added) = DATE(?)'
cursor.execute(query, (id, today_date)
1条答案
按热度按时间xwbd5t1u1#
在SQLite中有no datetime data type,所以你的日期时间实际上是字符串。
尽管您用来存储日期的格式不是正确的ISO格式
YYYY-MM-DD hh:mm:ss
,但您可以使用字符串函数SUBSTR()
来提取datetime的日期部分,并将其与当前日期(您可以使用SQLite的函数date()
获取)进行比较,因此无需使用Python代码来获取当前日期并将其作为参数传递给查询:或者,如果要使用本地时间显示当前日期: