gpt4 book ai didi

mysql在涉及时间戳的请求中使用通配符

转载 作者:行者123 更新时间:2023-11-29 11:09:01 25 4
gpt4 key购买 nike

我试图选择 mysql 中具有特定年份的所有行。日期时间的格式如 2016-12-02 10:00:00 所以我尝试使用通配符来做到这一点。不过我尝试过

SELECT * FROM all-data.prices where YEAR(timestamp)= "2005"; 

SELECT * FROM all-data.prices where timestamp= "2005%";但它对我不起作用。

对于此类 select 语句的正确语法有什么建议吗?

最佳答案

在 WHERE 子句中的字段上使用 FUNCTION 并不是最好的主意。然后 MySQL 必须计算每个 ROW 的 YEAR(时间戳),然后才能进行比较。所以它是全表扫描并且不能使用索引。

更好的方法是将时间戳与范围进行比较

SELECT * from your_table WHERE `timestamp` >= '2015-01-01 00:00:00' AND `timestamp` < '2016-01-01 00:00:00';

那么MySQL可以使用INDEX(如果有的话)

要使用 %,您还必须使用 LIKE 关键字

SELECT '2015-01-01 23:50:00' LIKE '2015%';

在您的示例中

 SELECT * from your_table WHERE `timestamp` LIKE '2015%';

关于mysql在涉及时间戳的请求中使用通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40945708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com