首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在sql中应用日期时间字段索引

如何在sql中应用日期时间字段索引
EN

Stack Overflow用户
提问于 2020-02-09 16:58:17
回答 1查看 65关注 0票数 0

我正在尝试从特定的日期范围中删除记录。

所以我使用了下面的查询

代码语言:javascript
复制
delete from `table_name` where `date`<1580947200

我已经将datetime用作date列的数据类型。

执行这个查询需要很长的时间,有时它会被卡住。

有谁能说出如何为这个查询应用索引吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-09 17:07:59

你的问题不是索引。您的问题是,您告诉MySQL对一个非数字(日期时间)列与一个数值(Unix时间戳)进行数字比较。

我已经将日期时间用作日期列的数据类型。

这意味着该列是一个DATETIME列。但是;

1580947200

在我看来就像一个Unix时间戳值。

Unix时间戳是,而不是与MySQL DateTime实体相同的DateTime。

因此,为了进行比较,需要将这两种类型转换为相同的类型;要做到这一点,可以使用UNIX_TIMESTAMP() MySQL函数。

代码语言:javascript
复制
DELETE FROM `table_name` WHERE UNIX_TIMESTAMP(`date`) < 1580947200 

如果您确实希望向date列添加索引,则可以使用read this Q&A

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60139020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档