mysql内置函数,在mysql里面利用str_to_date()把字符串转换为日期。
示例:分隔符一致,年月日要一致
select str_to_date('2008-4-2 15:3:28','%Y-%m-%d %H:%i:%s');
select str_to_date('2008-08-09 08:9:30', '%Y-%m-%d %h:%i:%s');
在java的DAO类操作:
程序段一:
和数据库日期字段coll_colltime作比较,首先使用str_to_date()方法将日期字符串转换成日期类型,startDate是js日期选择框提交过来的日期字符串变量:
sql.append(" and coll_colltime>=STR_TO_DATE('");
sql.append(startDate).append("','%Y-%m-%d')");
程序段二:
sql.append(" and coll_colltime<=STR_TO_DATE('lastDate','%Y-%m-%d')");
现在的疑问是程序一段和程序段二是否等价,第二段程序运行结果是错的,日期读不出来??
程序段三:
和数据库日期字段coll_colltime作比较,首先使用str_to_date()方法将日期字符串转换成日期类型,然后用date_add(Y-M-D, interval 1 day)方法给Y-M-D日期字段增加一天。
此时比程序段一的startDate大一天。
下边是程序代码:
sql.append(" coll_colltime<=date_add(STR_TO_DATE('");
sql.append(lastDate).append("','%Y-%m-%d'),interval 1 day)");