use*_*114 5 mysql compare date between
我存储我列server_date_time日期中varchar的dd/mm/yyyy格式,我想,所以我必须使用的查询来获取一些日期之间躺在记录
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';
Run Code Online (Sandbox Code Playgroud)
我已varchar在查询中转换为字符串,但我的查询返回的查询数据仅与29/09/2012和30/09/2012相关.它还应该返回10月份的查询
试试这个.你可以像你的问题一样以dd/mm/yyyy格式输入日期......
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')
Run Code Online (Sandbox Code Playgroud)
更新:我强烈建议您将数据类型从更改VARCHAR为DATETIME
干杯!!!
STR_TO_DATE足够。DATE_FORMAT将其改回VARCHAR
SELECT...
FROM...
WHERE str_to_date(substr(server_date_time,1,10),'%d/%m/%Y')
BETWEEN '29/09/2012' AND '07/10/2012'
Run Code Online (Sandbox Code Playgroud)
交易时date请使用DATE或DATETIME数据类型。这将避免您进行影响查询性能的转换。
| 归档时间: |
|
| 查看次数: |
10110 次 |
| 最近记录: |