首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mysql中整理日期

在mysql中整理日期
EN

Stack Overflow用户
提问于 2016-01-03 14:07:12
回答 3查看 52关注 0票数 0

例如,我们有这样的约会:

代码语言:javascript
复制
04/04/2017
12/12/2016
03/04/2016

如何才能订购其结果的日期:

代码语言:javascript
复制
11/12/2016
03/04/2016
12/04/2017

ORDER BY ASC/DESC不工作。请帮帮忙。

顺便说一句,我有药品的数据,上面有过期的日期。我只想让我的列表上的第一个数据成为第一个过期的药。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-03 14:22:41

如果您使用这个函数

代码语言:javascript
复制
 STR_TO_DATE('04-04-2017', '%d/%m/%Y')

您将将包含日期的varchar转换为日期数据类型。那些分类正确。

所以,

代码语言:javascript
复制
ORDER BY STR_TO_DATE(expireation_date_column, '%d/%m/%Y') NULLS FIRST

会给你一个有用的订单。NULLS FIRST部件将显示格式不正确的日期(如果有的话)在订单顶部的行。

如果这是一个大型项目,则在将这些过期日期插入表时将其转换为日期数据类型可能是明智的。这样,您就可以获得各种好处,包括使用索引搜索这些日期的能力。

票数 0
EN

Stack Overflow用户

发布于 2016-01-03 14:22:20

试试这个:

代码语言:javascript
复制
ORDER BY STR_TO_DATE(your_date_column, '%d/%m/%Y')

您的日期以这种格式保存为varchar dd/mm/yyyy

票数 0
EN

Stack Overflow用户

发布于 2016-01-03 14:32:28

当然,最好的解决方案是使用DateTime数据类型,而不是使用Varchar?

您将得到一个更有效的查询计划排序,对一个索引的DateTime列相比,日期时间转换的版本。

这也将防止无效的日期被存储,这是可能的,用Varchar。

如果要查询列,则索引日期时间列也会有所帮助。

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

https://stackoverflow.com/questions/34577379

复制
相关文章

相似问题

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