首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在两个日期之间选择日期格式

在两个日期之间选择日期格式
EN

Stack Overflow用户
提问于 2015-04-29 08:33:12
回答 2查看 816关注 0票数 0

也许任何人都能帮我解决这个问题。我只想在两个日期之间选择所有行,但是日期格式有问题。

我的问题是:

代码语言:javascript
运行
复制
SELECT id, number, date
FROM `table`
WHERE (STR_TO_DATE(date, '%j-%n-%Y') between '6-4-2015' AND '6-4-2016')

我不知道这个问题出了什么问题。我试过使用STR_TO_DATEDATE

日期的日期类型是文本(我想保留它)

下面是数据库的一个示例:

代码语言:javascript
运行
复制
1     233        5-4-2015
2     238        6-4-2015
3     431        7-4-2015
4     230        8-4-2015

有人能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-29 08:53:14

您在str_to_date中进行了错误的日期转换,看起来日期是d-m-Y格式的,您要做的是

代码语言:javascript
运行
复制
mysql> select STR_TO_DATE('5-4-2015', '%j-%n-%Y') ;
+-------------------------------------+
| STR_TO_DATE('5-4-2015', '%j-%n-%Y') |
+-------------------------------------+
| NULL                                |
+-------------------------------------+

所以它给了你零,商店就在那里结束了。

你应该用

代码语言:javascript
运行
复制
mysql> select STR_TO_DATE('5-4-2015', '%d-%m-%Y') ;
+-------------------------------------+
| STR_TO_DATE('5-4-2015', '%d-%m-%Y') |
+-------------------------------------+
| 2015-04-05                          |
+-------------------------------------+
1 row in set (0.00 sec)

现在的比较应该是

代码语言:javascript
运行
复制
WHERE 
STR_TO_DATE(date, '%d-%m-%Y') 
between 
STR_TO_DATE('6-4-2015','%d-%m-%Y') AND STR_TO_DATE('6-4-2015','%d-%m-%Y')
票数 1
EN

Stack Overflow用户

发布于 2015-04-29 08:45:12

请试试看这一段时间函数。

代码语言:javascript
运行
复制
'.date("d-m-Y", strtotime($r['date'])).'

例如

代码语言:javascript
运行
复制
 "select * from sales3 where (sdate between '.date("d-m-Y", strtotime($r['date1'])).' and '.date("d-m-Y", strtotime($r['date2'])).')"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29938381

复制
相关文章

相似问题

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