текущая дата - PullRequest
       7

текущая дата

3 голосов
/ 16 апреля 2010
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';";

Ответы [ 5 ]

1 голос
/ 16 апреля 2010

mysql имеет функцию, которая возвращает текущую дату - curdate()

Итак, ваш запрос должен быть похож на

update table set state_mode_id=1 WHERE stoping_mode < curdate()

Но у вас есть 2 основных недостатка (или даже 3):

  1. поле даты должно иметь формат ГГГГ-ММ-ДД, а не что-либо еще
  2. такое обновление вообще бессмысленно, потому что все такие состояния оцениваются в выбранное время
  3. сборка имени таблицы во время запроса является признаком очень плохого проектирования базы данных
1 голос
/ 16 апреля 2010

Формат даты MySQL - ГГГГ-ММ-ДД, но с помощью 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')

0 голосов
/ 16 апреля 2010
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;
  }
}

Хорошо, используйте эту функцию в самой базе данных, как

selectSql = "update " + table + " set state_" + mode + "_id=1 WHERE stoping_" + mode + " < 'ChangeDateforDB(customDATE)';"

Или в противном случае вы перейдете только к mysql date_format ()

0 голосов
/ 16 апреля 2010

Используйте любую функцию, подобную этой, чтобы вернуть ваш формат

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;
  }
}
0 голосов
/ 16 апреля 2010

YYYY-MM-DD - это собственный формат даты в MySQL. Мне трудно поверить, что сравнение со строкой DD-MM-YYYY работает?

Кстати, вы ищете DATE_FORMAT () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...