Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL DATE\u SUB无法正常工作_Mysql_Date - Fatal编程技术网

MYSQL DATE\u SUB无法正常工作

MYSQL DATE\u SUB无法正常工作,mysql,date,Mysql,Date,我试图返回在最后10秒内创建的所有行,即创建日期小于10秒的行。下面是我正在使用的sql,但这似乎不起作用: 选择COUNTamount FROM tablename,其中date\u created>=date\u SUBNOW,间隔10秒 有人能帮我吗 非常感谢。请确保将“创建日期”列设置为时间戳而不是日期时间-否则计算将无法正常工作 漫长的一天 感谢您的帮助。您的查询中唯一的缺陷是它在将来返回元素: mysql> create table tablename( ->

我试图返回在最后10秒内创建的所有行,即创建日期小于10秒的行。下面是我正在使用的sql,但这似乎不起作用:

选择COUNTamount FROM tablename,其中date\u created>=date\u SUBNOW,间隔10秒

有人能帮我吗


非常感谢。

请确保将“创建日期”列设置为时间戳而不是日期时间-否则计算将无法正常工作

漫长的一天


感谢您的帮助。

您的查询中唯一的缺陷是它在将来返回元素:

mysql> create table tablename(
    ->  date_created datetime
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql>
mysql> insert into tablename (date_created) values
    -> ('2000-02-29 15:00:00'),
    -> (CURRENT_TIMESTAMP),
    -> (CURRENT_TIMESTAMP - interval 5 second),
    -> (CURRENT_TIMESTAMP - interval 11 second),
    -> ('2022-08-14 12:00:00');
Query OK, 5 rows affected (0.01 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql>
mysql> select date_created,
    -> case
    ->   when date_created>= DATE_SUB(NOW(), INTERVAL 10 SECOND)
    ->   then 'Matches'
    ->   else 'Does not match'
    -> end as 'Match'
    -> from tablename;
+---------------------+----------------+
| date_created        | Match          |
+---------------------+----------------+
| 2000-02-29 15:00:00 | Does not match |
| 2015-11-06 11:44:17 | Matches        |
| 2015-11-06 11:44:12 | Matches        |
| 2015-11-06 11:44:06 | Does not match |
| 2022-08-14 12:00:00 | Matches        | <==== This is not correct
+---------------------+----------------+
5 rows in set (0.00 sec)
只需附加相应的限制:

AND date_created<=NOW()

你能更好地解释什么似乎不起作用吗?是的,似乎所有的结果都不到10秒,甚至是一个多小时前产生的结果。我想也许>=应该是您的日期值是否正确?现在打印时,它是否显示当前时间?是的,我几分钟前刚刚发布了另一个,它存储为2015-11-05 15:19:22英国服务器如果您希望创建日期,为什么您认为日期计算不能适用于所有日期类型?这就像声称你可以乘整数,但不能乘浮点数一样?