3

我有一个名为“s_timestamp”的列。

如何返回时间戳中包含当天的所有记录?

例如,

s_timestamp
2012-12-27 1:00:00
2012-12-27 2:00:00
2012-12-26 0:00:01
2012-12-20 0:00:02
2012-12-21 0:00:03

我想要以下输出:

2012-12-27 1:00:00
2012-12-27 2:00:00

如果不清楚,请告诉我。

4

2 回答 2

3

只需使用CURDATE(). 例如

SELECT *
FROM tableName
WHERE DATE(s_timestamp) = CURDATE()
于 2012-12-28T00:22:25.873 回答
2

这可能比将时间戳转换为更有效DATE,特别是如果您在时间戳列上有索引(应该有):

SELECT *
FROM tableName
WHERE s_timestamp >= CURDATE()

或者,如果您想排除任何未来日期:

SELECT *
FROM tableName
WHERE s_timestamp >= CURDATE()
  AND s_timestamp < DATE_ADD(CURDATE(), INTERVAL 1 DAY)

这是有效的,因为当 aDATETIME或 aTIMESTAMP与 a 进行比较时DATEDATE实际上,它被解释为具有 的时间部分0:00:00

于 2012-12-28T00:32:36.283 回答