我有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 "并且无法改变!
答案 0 :(得分:4)
看起来您需要UNIX_TIMESTAMP
转化
SELECT
COUNT(*)
FROM table
WHERE STR_TO_DATE(date,'%Y-%m-%d') > DATE(FROM_UNIXTIME(1409072511))
评论中提到的AS ypercube如果你的日期字段上有索引,那么这样做可能会更快取决于:
WHERE date > CAST(FROM_UNIXTIME(1409072511) AS CHAR(10))
答案 1 :(得分:1)
您仍然可以使用STR_TO_DATE
和UNIX_TIMESTAMP
SELECT
id,
`date`
FROM myTable
WHERE UNIX_TIMESTAMP(STR_TO_DATE(`date`, '%Y-%m-%d')) > 1409072511
或者您可以直接使用DATE
使用STR_TO_DATE
。