首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在sql中扫描订单日期的正确值。

问无法在sql中扫描订单日期的正确值。
EN

Stack Overflow用户
提问于 2018-10-30 10:20:06
回答 1查看 42关注 0票数 0

我想要获取所选日期范围内对应的所有数据。所以问题是。当数据中包含了时间的时候。它无法获取要显示的所需数据。但当我去掉时间的时候。它表现得很好。我能做些什么才能补救呢?

示例值:

  1. 2018-10-29 01:21:29
  2. 2018-10-30 01:21:29

工作的示例值:

  1. 2018-10-29
  2. 2018-10-30

我的问题是:

代码语言:javascript
复制
 `"SELECT *,SUBSTRING(order_date,1,10) from orders where order_date >='$fromdate' AND order_date <='$todate'"`
EN

回答 1

Stack Overflow用户

发布于 2018-10-30 10:37:54

理想解决方案:您需要使用Alter Table命令将order_date的数据类型从Varchar(500)更改为Datetime类型。

现在,值得注意的是,MySQL日期时间值为YYYY DD:MM:SS格式。因此,首先,您需要将日期时间字符串更改为MySQL日期时间格式字符串。否则,直接更改数据类型将导致数据的不可弥补的丢失/截断。

您的日期时间值2018-10-29 01:21:29pm基本上是YYYY DD:MM:SS/PM (12小时格式)。就格式说明符而言,它将是:'%Y-%m-%d %h:%i:%s%p'。可用格式说明符的完整列表可以在MySQL文档中看到。

--首先,,我们使用Str_To_Date()函数将所有数据转换成适当的日期时间格式。

代码语言:javascript
复制
UPDATE orders 
SET order_date = STR_TO_DATE(order_date, '%Y-%m-%d %h:%i:%s%p');

现在,下一步很简单。只需将数据类型修改为datetime

代码语言:javascript
复制
ALTER TABLE orders 
MODIFY COLUMN order_date datetime;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53062077

复制
相关文章

相似问题

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