作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Mysql
中存储为 char
的日期字段如下 050712
.. 现在我想显示数据库中可用的结果小于此日期。我这样写
条件应该失败
select * from tblFedACHRDFI where date_format(changedate,'%m/%d/%Y')> 05/08/12;
这显示了所有可用的记录,但我不需要,我只想在日期为 05/06/12
时显示,这意味着
真实情况
select * from tblFedACHRDFI where date_format(changedate,'%m/%d/%Y')> 05/06/12;
当我如下编写时,在 Sqlserver
中同样适用于我
记录没有显示,这符合我的要求
select * from tblFedACHRDFI where
CONVERT(datetime,(SUBSTRING(ChangeDate,1,2)+'/'
+SUBSTRING(ChangeDate,3,2)+'/'+dbo.Years
(SUBSTRING(ChangeDate,5,2))+SUBSTRING(ChangeDate,5,2)))>
'05/08/2012'
所以任何人都可以帮助我在 MySql
语句中出错的地方..
最佳答案
MySQL 日期应为 YYYY-MM-DD,列类型应为 DATE。
如果您希望以任何其他方式存储日期(例如,您在此处使用的 CHAR(6)),则每次使用该日期时都必须使用转换。这速度较慢,使用更多 CPU,并且可能会失败,因为您可以在 CHAR 字段中存储无效值。
但是,它确实有效。使用 STR_TO_DATE函数将您的 CHAR 列转换为正确的日期。现在您可以将它与适当的日期进行比较,使用 INTERVAL 函数,整个过程:
select *
from tblFedACHRDFI
where str_to_date(changedate,'%m%d%Y') > "2012-08-05";
关于Mysql查询帮助显示小于给定日期的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10482705/
我是一名优秀的程序员,十分优秀!