Пользовательский код, похожий на DATEDIFF_BIG в SQL Server 2014

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

Но нет простого способа «деактивировать» "настройка в более низком файле конфигурации. Даже установите его на "", как правило, имеют непреднамеренные последствия. Эта тема была рассмотрена в апреле 2010 г. .

Например, деактивация опции send-email:

Правда, немного подумав о это использование без значения, чтобы отменить это ужасный, ужасный взлом. git-send-email следует исправить, чтобы не только проверить, есть ли значение из опции конфигурации или командной строки, но также и то, что он является нормальным (т.е. непустым или просто истинным, если мы говорим, что smtpuser = "0" не то, что нам нужно беспокоиться о поддержке).

blockquote>

Это верно для любой настройки: функция diff.c#run_diff_cmd() попытается запустить внешний diff, если он имеет обнаружено значение и diff.external (даже "").

if (!strcmp(var, "diff.external"))
  return git_config_string(&external_diff_cmd_cfg, var, value);

приводит к:

if (pgm) {
  run_external_diff(pgm, name, other, one, two, xfrm_msg,
  complete_rewrite);
  return;
}

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

8
задан Dale Burrell 17 January 2019 в 05:58
поделиться

1 ответ

Согласно вашему коду,

LEAD(A.CreatedDate,1,0) OVER (ORDER BY A.CreatedDate)

Функция LEAD считывает строку LEAD / Next из текущей строки, но при последней записи функция LEAD не нашла ни одной строки, поэтому возвращает дату и время по умолчанию. Для этого случая вам нужно сравнить с датой по умолчанию.

case when LEAD(A.CreatedDate,1,0) OVER (ORDER BY A.CreatedDate)='1900-01-01 00:00:00' then A.CreatedDate else LEAD(A.CreatedDate,1,0) OVER (ORDER BY A.CreatedDate) end

Другой способ, вместо LEAD (A.CreatedDate, 1,0) использовать LEAD (A.CreatedDate, 1, A.CreatedDate).
Таким образом, оптимальным решением будет ...

SELECT 
ROW_NUMBER() OVER (Order by A.MDetailID) as Row,
DATEDIFF(SECOND, A.CreatedDate, LEAD (A.CreatedDate,1,A.CreatedDate)OVER (ORDER BY A.CreatedDate))Result
FROM dbo.tbl_VehicleLiveMovementDetail A
0
ответ дан Osman Goni 17 January 2019 в 05:58
поделиться
Другие вопросы по тегам:

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