2012-07-15 151 views
0

我试图从一个SQLite数据库中选择所有内容在一个日期发布的数据,而不管它在哪一年发布。例如:每年7月15日在数据库。SQLite当前日期和过去几年的当前日期

这是我的代码到目前为止。

SELECT Date, Content FROM MYDATABASE WHERE Date = date('now')

我怎样才能让这个也包含在当前日期以前的所有条目?

+0

'where da y(日期)=日(日期('现在'))和月份(日期)=月(日期('现在'))'或大约? – 2012-07-15 05:44:10

+0

Marc,这会导致“无此功能:日”错误。 – Maxx 2012-07-15 06:03:01

回答

2

你可以比较你与strftime(...)功能得到为期一个月的日部分:

SELECT Date, Content 
FROM MYDATABASE 
WHERE strftime('%m%d', Date) = strftime('%m%d', date('now')) 

查看文档了解更多有关日期时间函数:http://www.sqlite.org/lang_datefunc.html

请注意,对于日期和时间功能正常工作,您的日期必须以以下格式之一存储(如上面链接的文档中所述):

YYYY-MM-DD 
YYYY-MM-DD HH:MM 
YYYY-MM-DD HH:MM:SS 
YYYY-MM-DD HH:MM:SS.SSS 
YYYY-MM-DDTHH:MM 
YYYY-MM-DDTHH:MM:SS 
YYYY-MM-DDTHH:MM:SS.SSS 
HH:MM 
HH:MM:SS 
HH:MM:SS.SSS 
now 
DDDDDDDDDD 
+0

Ludo,而你的代码在SQLite管理器中工作正常;它会在钛中生成以下错误:“未捕获的SyntaxError:意外的字符串”。 – Maxx 2012-07-16 22:31:50