Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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/6/asp.net-mvc-3/4.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 时间戳间隔_Mysql_Sql_Select_Timestamp - Fatal编程技术网

Mysql 时间戳间隔

Mysql 时间戳间隔,mysql,sql,select,timestamp,Mysql,Sql,Select,Timestamp,我有一个名为“s_timestamp”的专栏 如何返回时间戳中包含当前日期的所有记录 比如说, s_timestamp 2012-12-27 1:00:00 2012-12-27 2:00:00 2012-12-26 0:00:01 2012-12-20 0:00:02 2012-12-21 0:00:03 我想要以下输出: 2012-12-27 1:00:00 2012-12-27 2:00:00 如果不清楚,请告诉我。只需使用CURDATE()。乙二醇 SELECT * FROM tab

我有一个名为“s_timestamp”的专栏

如何返回时间戳中包含当前日期的所有记录

比如说,

s_timestamp
2012-12-27 1:00:00
2012-12-27 2:00:00
2012-12-26 0:00:01
2012-12-20 0:00:02
2012-12-21 0:00:03
我想要以下输出:

2012-12-27 1:00:00
2012-12-27 2:00:00
如果不清楚,请告诉我。

只需使用
CURDATE()
。乙二醇

SELECT *
FROM tableName
WHERE DATE(s_timestamp) = CURDATE()

这可能比将时间戳强制转换为日期更有效,尤其是如果时间戳列上有索引(您应该有):

或者,如果要排除任何未来日期:

SELECT *
FROM tableName
WHERE s_timestamp >= CURDATE()
  AND s_timestamp < DATE_ADD(CURDATE(), INTERVAL 1 DAY)
选择*
从表名
其中s_timestamp>=CURDATE()
和s_时间戳

这是因为,当将
日期时间
时间戳
日期
进行比较时,
日期
实际上被解释为时间部分为
0:00:00

是时间戳a
时间戳
?@WaleedKhan,是的。让我来编辑这个问题。我必须同意JW给出的答案。它还允许您通过简单地将查询中的“CURDATE”更改为您想要获取数据的任何日期来获取任何日期的信息。(即CURDATE,或2012-11-23,或2012-12-24,或任何你想查询的日期)好吧,时间戳是“2012-12-27 11:45:40”。。。如何从该时间戳中获取curdate,然后运行查询?@SohelMansuri
WHERE DATE(s_timestamp)=curdate()
yes,
DATE
不使用索引。但是条件
,其中s_timestamp>=CURDATE()
将选择从今天开始的所有日期,并大于该日期<代码>其中s_timestamp介于CURDATE()和DATE_ADD之间(CURDATE(),INTERVAL 1 DAY)
将选择今天和明天。啊,我明白了,上限被关闭了一秒钟。让我来解决这个问题。。。这可能不仅仅是更有效。如果在
s\u timestamp
上有一个索引,它肯定会更有效率,而且效率会更高。
SELECT *
FROM tableName
WHERE s_timestamp >= CURDATE()
  AND s_timestamp < DATE_ADD(CURDATE(), INTERVAL 1 DAY)