从MySQL中的某个日期获取行

时间:2014-08-26 18:06:22

标签: mysql sql

我有table

ID  |  date
=============
1   |  2024-12-13
2   |  2004-03-03
3   |  2011-07-13
4   |  2004-05-23
5   |  1996-08-05

现在,我希望获得特定日期(时间戳)之前的条目数量,如:

SELECT COUNT(*) FROM table WHERE date > 1409072511

date字段是" longtext "并且无法改变!

2 个答案:

答案 0 :(得分:4)

看起来您需要UNIX_TIMESTAMP转化

请参阅documentation

SELECT 
    COUNT(*) 
FROM table 
WHERE STR_TO_DATE(date,'%Y-%m-%d') > DATE(FROM_UNIXTIME(1409072511))

DEMO

评论中提到的AS ypercube如果你的日期字段上有索引,那么这样做可能会更快取决于:

WHERE date > CAST(FROM_UNIXTIME(1409072511) AS CHAR(10))

答案 1 :(得分:1)

您仍然可以使用STR_TO_DATEUNIX_TIMESTAMP

将文字转换为日期
SELECT
  id,
  `date`
FROM myTable
WHERE UNIX_TIMESTAMP(STR_TO_DATE(`date`, '%Y-%m-%d')) > 1409072511

或者您可以直接使用DATE使用STR_TO_DATE