Выбор пустых mysql полей даты и времени

Как насчет использования свойств объекта в качестве хеш-таблицы ? Таким образом, ваш лучший сценарий состоит только в случайном 8 раз. Это было бы эффективно только в том случае, если вы хотите получить небольшую часть диапазона чисел. Это также значительно меньше памяти, чем Fisher-Yates, потому что вам не нужно выделять пространство для массива.

var ht={}, i=rands=8;
while ( i>0 || keys(ht).length

Затем я узнал, что Object.keys (obj) - это функция ECMAScript 5, так что выше в настоящее время почти бесполезно в интернетах. Не бойтесь, потому что я сделал его совместимым с ECMAScript 3, добавив такие функции клавиш, как это.

if (typeof keys == "undefined") 
{ 
  var keys = function(obj) 
  {
    props=[];
    for (k in ht) if (ht.hasOwnProperty(k)) props.push(k);
    return props;
  }
}

28
задан Callum 18 February 2009 в 02:10
поделиться

4 ответа

Лучше, каким образом? Тот запрос делает все, что Вы спрашиваете его и, если существует индекс на datetime_field, это - с такой скоростью, как он собирается добраться.

, Если Вы волнуетесь по поводу запроса, выглядящего "ужасными", не быть. Его намерение довольно ясно.

единственное возможное улучшение, которое Вы могли рассмотреть, должно использовать, АННУЛИРУЕТ для этих zero-date/time строк, в этом случае Ваш запрос становится:

SELECT * FROM `table` WHERE `datetime_field` IS NULL

Это - то, что я сделал бы с совместимым стандартами DBMS. Мое понимание - то, что май MySQL представляет истинные ПУСТЫЕ поля даты и времени этим ужасающим способом, в этом случае я предполагаю эти IS NULL, может не работать.

40
ответ дан paxdiablo 14 October 2019 в 09:34
поделиться

Я использую это:

SELECT * FROM `table` WHERE UNIX_TIMESTAMP(`datetime_field`) = 0
5
ответ дан Stiropor 14 October 2019 в 09:34
поделиться

Позвольте мне произвести правовую оговорку, я не уверен, что это сделает. Но было бы действительно здорово, если бы это работало.

SELECT * FROM table WHERE datetime = DATESUB(NOW(),NOW());
-1
ответ дан Suroot 14 October 2019 в 09:34
поделиться

SELECT * FROM db.table WHERE UNIX_TIMESTAMP (datetime_field) = 0

Мне нравится этот код, потому что он не только улавливает «нулевые даты» (например, '0000-00-00 00:00 : 00 ') также ловит "нули в датах" (например,' 2010-01-00 00:00:00 ')

27
ответ дан 28 November 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: