在mysql中存储在varchar中的日期之间搜索数据 [英] searching data between dates stored in varchar in mysql

查看:238
本文介绍了在mysql中存储在varchar中的日期之间搜索数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 varchar 中以 dd / mm / yyyy 格式在server_date_time列中存储我的日期,获取位于某些日期之间的记录,以便我使用查询

I am storing my dates in column server_date_time in varchar in dd/mm/yyyy format and i want to fetch the records lying between some dates so i have used the query

    select * from activity_emp 
where date_format(str_to_date(substr(server_date_time,1,10),'%d/%m/%Y'),'%d/%m/%Y')>=
'29/09/2012'
    and date_format(str_to_date(substr(server_date_time,1,10),'%d/%m/%Y'),'%d/%m/%Y')<=
'07/10/2012';

我已将 varchar 转换为查询中的字符串但我的查询返回的查询数据只与29/09/2012和30/09/2012相关。它也应该返回10月份的查询

I have converted varchar to string in query but my query return query data only related to 29/09/2012 and 30/09/2012. It should also return query for the month of October

推荐答案

尝试这个。您可以按照您的问题以dd / mm / yyyy格式输入日期...

Try with this. You can input date in dd/mm/yyyy format as in your question...

SELECT * FROM activity_emp
WHERE STR_TO_DATE(server_date_time, '%d/%m/%Y')
  BETWEEN STR_TO_DATE('29/08/2012', '%d/%m/%Y')
    AND STR_TO_DATE('07/10/2012', '%d/%m/%Y')

更新:我强烈建议您将数据类型从 VARCHAR 更改为 DATETIME

Update: I strongly recommend you to change datatype from VARCHAR to DATETIME

干杯!!!

这篇关于在mysql中存储在varchar中的日期之间搜索数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆