我的数据库中包含以下格式的日期:MM / dd / yy。例如,今天的日期(2011年11月4日)保存在数据库中:11/04/11。我的日期范围有问题,因为我的日期格式不是yyyy / MM / dd(例如:2011/11/04)。我没有办法改变数据库的填充方式,所以我需要考虑我的MYSQL查询中的日期格式差异(通过VB.NET)。这是我的查询(它不能很好地工作,因为日期格式不正确):
SELECT CMP_DATE FROM my_data WHERE OBJ_DATE >= '1994/01/01' AND CMP_DATE <= '2011/11/04'
无论如何重新格式化查询中的日期?谢谢。
答案 0 :(得分:0)
您需要的功能是STR_TO_DATE
:
SELECT CMP_DATE
FROM my_data
WHERE STR_TO_DATE(OBJ_DATE, '%d/%m/%y') >= '1994-01-01'
AND STR_TO_DATE(CMP_DATE, '%d/%m/%y') <= '2011-11-04'
@Piskvor也有一个好处,您应该考虑自己解释2位数年份,而不是让mysql执行任意转换。