在 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/