sqlite选择特定月份的特定日期而不选择特定月份

时间:2015-06-14 14:41:31

标签: sql sqlite date timestamp

我要做的是从时间戳中选择特定月份和特定日期。我试过的是:

SELECT t FROM test WHERE t BETWEEN '2015-08-01 00:00:00' AND '2015-08-01 23:59:59';

8是特定月份,1是特定日期,但这不会返回任何内容。

我想做的另一件事是选择一年中每个月的特定日期,我所尝试过的,我知道这是错误的,但我不确定如何做到这一点:

SELECT t FROM test WHERE t BETWEEN '2015-01-12 00:00:00' AND '2015-24-12 23:59:59';

我可以理解为什么这不起作用,因为我从第一个月的那天到上个月的同一天都采取了每个时间戳,但我该怎么办呢?

编辑:我发现为什么它不适用于第一个例子我今天的变量包含一个数字所以当它低于10时它只说#而不是0#

1 个答案:

答案 0 :(得分:2)

您可以为此使用LIKE子句。如果你有以下几毫秒的时间,你的介于两者之间也不适用于边缘情况:59。

WHERE t LIKE '2015-08-01 %'

和:

WHERE t LIKE '2015-%-12 %'

此外,关于优化,timestamp或类似内容具有文本关联性(即使文档似乎暗示它是数字)。如果您有索引,它应该允许like optimization,但如果您可以管理它,则使用范围可能会更好。我会查看查询计划。