mysql - 从 mySQL 中选择 CURDATE()

标签 mysql date datetime

在 mySQL 表中,我有一个 INT(10)r_insert_time,我在其中存储时间戳。

现在我想选择 where r_insert_time = today CURDATE()

SELECT COUNT(*) FROM rdv WHERE u_id = ? AND r_insert_time = CURDATE()

现在返回 0 个结果,尽管今天有值,如“1547043955”

我也试过:

SELECT COUNT(*) FROM rdv WHERE u_id = ? AND r_insert_time >= CURDATE()

SELECT COUNT(*) FROM rdv WHERE u_id = ? AND DATE(r_insert_time) = CURDATE()

SELECT COUNT(*) FROM rdv WHERE u_id = ? AND DATE(r_insert_time) >= CURDATE()

并且它们都返回 0。

最佳答案

首先,检查 my_dt 字段是否按照 CURDATE() 的要求存储为 YYYYMMDD。 如果是,则需要强制 CURDATE() 输出为数字而不是字符串以进行比较。

尝试:

SELECT COUNT(*) FROM rdv WHERE u_id = ? AND r_insert_time = CURDATE() + 0

此外,我不确定 r_insert_time 是什么。您不是要将 CURDATE() 与 my_dt 进行比较吗?在这种情况下它将是:

SELECT COUNT(*) FROM rdv WHERE u_id = ? AND my_dt = CURDATE() + 0

编辑:

再看一眼,您似乎使用的是纪元时间戳。如果你想比较它,你需要使用类似 UNIX_TIMESTAMP() 的东西来找到你的时间戳可能落入的纪元时间范围。

尝试以下方法:

SELECT COUNT(*) FROM rdv WHERE u_id = ? AND r_insert_time >= UNIX_TIMESTAMP(CURDATE()) AND r_insert_time < UNIX_TIMESTAMP(CURDATE() + 1)

关于mysql - 从 mySQL 中选择 CURDATE(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54112927/

相关文章:

r - 日期对象的 Knitr 行为

ruby-on-rails - 为什么这两个日期时间不同?

javascript - 如何使用负时间戳进行数学运算?

mysql - SQL Query基于inner join获取结果集

Android 评分栏 - 如何预设星级

mysql - VB.Net 不使用数据库数据填充数组

php - 如何从表中的不同行获取多个结果?

perl - 以秒为单位的时差

sql - 按日期滚动求和的窗口函数

python datetime以毫秒精度 float