2016-05-23 2 views
0

В моем getRequest я передаю две строки (minTime и maxTime), в MySQL у меня есть два столбца TIME (minTime и maxTime) Мне нужны все регистры между этими двумя значениями.String hh: mm to date.sql hh: mm (Android, Java) или String to Time (PHP)

По этой причине мне нужно преобразовать minTime и maxTime в sql.date и получить правильные регистры (со строками не работает должным образом). Я стараюсь много вещей без успеха, например:

String minTime_user = "10:45" 

java.util.Date utilDate = new SimpleDateFormat("hh:mm").parse(minTime_user); 

//output: Thu Jan 01 10:28:00 GMT-05:00 1970 

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); 

//output: 1970-01-01 

Если это невозможно, как можно преобразовать строку времени в PHP? Я видел функцию strtotime, но она возвращает количество секунд с 1970 года, в идеале я предпочитаю формат «hh: mm», чтобы иметь возможность сравнивать, не преобразовывая значения моей таблицы в Unix.

ответ

0

Если, как вы говорите, ваше время хранится в столбце TIME, вы можете сравнить время непосредственно в запросе MySQL:

SELECT * FROM table WHERE column BETWEEN "10:45" AND "15:44"; 

See here для демонстрации.

PHP - это свободно печатаемый язык, поэтому вам не нужно беспокоиться о его преобразовании во что-либо; он отправляется в MySQL как строка.

Edit: the documentation рекомендует явно заливку значения TIME в запросе, так что вы в конечном итоге с чем-то вроде этого:

SELECT * FROM table WHERE column BETWEEN CAST("10:45" AS TIME) AND CAST("15:44" AS TIME); 

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

Смежные вопросы