string selectSql = "update " + table + " set state_" + mode + "_id=1 WHERE stoping_" + mode + " < current_date;";
当我致电current_date
时,它会返回yyyy-MM-dd
格式,但我想返回dd.MM.yyyy
格式,我该怎么做呢。请帮忙。我正在尝试
string selectSql = "update " + table + " set state_" + mode + "_id=1 WHERE stoping_" + mode + " < '16.04.2010';";
答案 0 :(得分:1)
MySQL日期格式为YYYY-MM-DD,但使用str_to_date()和date_format()可以更改日期格式。
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
在您的情况下,请尝试DATE_FORMAT(current_date, '%d.%M.%Y')
答案 1 :(得分:1)
mysql有一个返回当前日期的函数 - curdate()
因此,您的查询必须像
update table set state_mode_id=1 WHERE stoping_mode < curdate()
但是你有2个主要错误(甚至3个):
答案 2 :(得分:0)
YYYY-MM-DD是mySQL的原生日期格式。我发现很难相信与DD-MM-YYYY字符串进行比较有效吗?
Anway,你要找的是DATE_FORMAT()。
答案 3 :(得分:0)
使用此类函数返回格式
function ChangeDateforShow($inputdate) {
if($inputdate>0) {
$date = substr($inputdate,8,2);
$month = substr($inputdate,5,2);
$year = substr($inputdate,0,4);
$show = $date.".".$month.".".$year;
return $show;
}
}
答案 4 :(得分:0)
function ChangeDateforDB($inputdate) {
if($inputdate>0) {
$date = substr($inputdate,0,2);
$month = substr($inputdate,3,2);
$year = substr($inputdate,6,4);
$show = $year."-".$month."-".$date;
return $show;
}
}
确定在db本身中使用此功能,如
selectSql = "update " + table + " set state_" + mode + "_id=1 WHERE stoping_" + mode + " < 'ChangeDateforDB(customDATE)';"
否则你只会移动mysql date_format()