【发布时间】:2012-07-31 12:55:58
【问题描述】:
假设我有一张桌子,上面有人们的名字和他们的生日(日期和时间)。我希望能够使用以下 SQL for SQLite 找到人们今天的生日(日期和时间)。
SELECT * FROM Btable WHERE Bday = date('yyyy-MM-dd')
但是,它总是返回 nil 数据集。我还需要包括时间吗?
我的 SQL 语句到底有什么问题?如果是这样,查询今天日期的正确 SQL 语句是什么。
更新:
这是我使用 BETWEEN 逻辑的实际 SQL 语句:
SELECT *
FROM Alarms
WHERE ALARMSTATE IN (0,1,2)
AND ALARMPRIORITY IN (0,1,2,3,4)
AND ALARMGROUP IN (0,1,2,3,4,5,6,7)
AND ALARMTIME BETWEEN date(2012-08-02)
AND date(2012-08-3)
ORDER BY ALARMTIME DESC
【问题讨论】:
-
生日不在同一年。您可能想要比较日期和月份,而不是年份。
-
@NikolaMarkovinović,是的,这是一个不好的例子,但你明白了。 :) 我可以说该表是一个警报日志,我想找到今天的所有警报日志。
-
;-D 在这种情况下,您需要仅将
BDay截断为日期,或者更好地过滤 BDay >= my_date 和 BDay -
@NikolaMarkovinović,我还尝试了与您在之前评论中所说的非常相似的 BETWEEN 逻辑。它还返回 Nil 数据集。
-
对于日期时间列,您最好使用 >= 和
标签: sql database sqlite date dataset