Временной интервал

У меня есть столбец под названием «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 

Дайте мне знать, если это неясно.

просто используйте CURDATE() . например

 SELECT * FROM tableName WHERE DATE(s_timestamp) = CURDATE() 
  • ДАТА()
  • CURDATE ()

Это может быть более эффективным, чем лить метки времени в DATE , особенно если у вас есть индекс в столбце timestamp (который вы должны иметь):

 SELECT * FROM tableName WHERE s_timestamp >= CURDATE() 

или, если вы хотите исключить любые будущие даты:

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

Это работает, потому что, когда DATETIME или TIMESTAMP сравниваются с DATE , DATE , по сути, интерпретируется как имеющая временную часть 0:00:00 .