在两个日期之间选择dateformat

1995年

也许任何人都可以帮助我进行此查询。我只想选择两个日期之间的所有行,但是日期格式存在问题。

我的查询:

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

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

这是数据库的示例:

1     233        5-4-2015
2     238        6-4-2015
3     431        7-4-2015
4     230        8-4-2015

有谁能够帮助我?

阿比克·查克拉博蒂(Abhik Chakraborty)

您在中进行了错误的日期转换str_to_date,看起来日期的d-m-Y格式是正确的,而您正在执行的操作是

mysql> select STR_TO_DATE('5-4-2015', '%j-%n-%Y') ;
+-------------------------------------+
| STR_TO_DATE('5-4-2015', '%j-%n-%Y') |
+-------------------------------------+
| NULL                                |
+-------------------------------------+

因此,它为您提供了null,而商店就此结束。

您应该使用

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)

现在比较应该是

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')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章