Mysql Select 日期时间,大于时间戳

Mysql Select datetime, greater than timestamp

我正在尝试向我的 SELECT 添加 WHERE 子句以从我的 table 中获取日期,其中 table 中的日期时间大于传入的时间戳。

SELECT * FROM record WHERE UNIX_TIMESTAMP(REPLACE(date_value, 'T', '')) >= 1388552400;

这是数据样本

+--------+------------------------------+
| id     | date_value                   |
+--------+------------------------------+
| 344380 | 2014-12-01T00:00:00          |
| 344381 | 2014-12-23T00:00:00          |
| 344382 | 2014-12-16T00:00:00          |
| 344383 | 2014-12-24T00:00:00          |
| 344384 | 2014-12-17T00:00:00          | 
+--------+------------------------------+

我已经尝试了一些方法,但要么得到一个空集,要么得到错误日期时间的警告。

您需要将 date_values 中的 T 替换为 space,' ' 不是空字符串,''.

所以下面的查询应该按预期工作:

SELECT * FROM record WHERE UNIX_TIMESTAMP(REPLACE(date_value, 'T', ' ')) >= 1388552400;

为了调试您的原始查询,我 运行 以下内容:

SELECT id, UNIX_TIMESTAMP(REPLACE(date_value, 'T', '')) FROM record;

其中返回的时间戳全为0。

然后我跟着:

SELECT id, REPLACE(date_value, 'T', '') FROM record;

我在你的 date_value 中看到了缺失的 space。

http://sqlfiddle.com/#!2/a184f/6