Где-нибудь в коде, что-то должно циклично выполниться. Единственным путем вокруг этого является полное разворачивание цикла:
int numDots = 0;
if (s.charAt(0) == '.') {
numDots++;
}
if (s.charAt(1) == '.') {
numDots++;
}
if (s.charAt(2) == '.') {
numDots++;
}
... и т.д., но тогда Вы - тот, делающий цикл, вручную, в редакторе исходного кода - вместо компьютера, который выполнит его. Посмотрите псевдокод:
create a project
position = 0
while (not end of string) {
write check for character at position "position" (see above)
}
write code to output variable "numDots"
compile program
hand in homework
do not think of the loop that your "if"s may have been optimized and compiled to
Если вы храните даты как временные метки Unix в базе данных, вы ложитесь тяжелой работой. Вам необходимо преобразовать их в форматы, которые вы хотите использовать, вам нужно выполнить вычисления между диапазонами дат, вам нужно создать запросы для получения данных в диапазоне. Это кажется нелогичным - наверняка ваше «время программиста» лучше всего потратить на решение реальных проблем?
Кажется, гораздо лучше хранить дату и время в надлежащем формате, который доступен MySQL, а затем использовать функции базы данных для создания запросов для данных, которые вы хотите. Время, которое вы потратите впустую на все преобразования и возню, огромно по сравнению с днем, проведенным за чтением (и пониманием) 11. 6 MySQL функции даты и времени
Одним из преимуществ использования типов даты / времени MySQL является возможность более простого использования функций даты / времени в MySQL .
] Тип DATE
также имеет преимущество в том, что в нем хранятся только день, месяц и год, поэтому нет лишних затрат места или сложностей при сравнении, которые возникли бы в секундах с момента времени для ситуаций, когда вас заботит только день. а не время.
Лично я предпочитаю использовать базу данных как просто дамп для данных, поэтому такие функции малоинтересны. В PHP я предпочитаю хранить дату в целочисленном формате практически по указанным вами причинам.
Легче сравнивать, и mysql предоставляет множество функций даты.
Более простое обслуживание - это плюс. Увидеть настоящую дату, когда вы это сделаете:
select * from table where ...
- это очень приятно.
Использование времени базы данных более эффективно, потому что каждый раз, когда вам нужно сделать запрос, вам придется применять функцию from_unixtime() для извлечения данных из колонки unix datetime таблицы. Использование этой функции в выражении where полностью игнорирует использование индекса.
скажем, мой запрос:
select col1,col2,colUnixdatetime from table where colUnixdatetime between wtvdate1 and wtvdate2
Мне нужно выполнить:
select col1,col2,colUnixdatetime from table where From_Unixtime(colUnixdatetime) between wtvdate1 and wtvdate2
Этот вышеприведенный запрос будет полностью игнорировать любые индексы, ну, здесь нет никакого использования индексов, так как они никогда не будут использоваться, потому что мне всегда придется использовать функцию для получения реального времени даты.
Любая встроенная функция, используемая на LHS условия в предложении where, не будет использовать индексы, и если у вас ОГРОМНАЯ таблица, ваш запрос займет больше времени.