Различие двух раз даты в SQL-сервере

Есть ли любой способ взять различие между два datetime в SQL-сервере?

Например, мои даты

  1. 2010-01-22 15:29:55.090
  2. 2010-01-22 15:30:09.153

Так, результат должен быть 14.063 seconds.

76
задан Luke 24 July 2014 в 14:43
поделиться

5 ответов

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

select datediff (m, '20100131', '20100201')

дает ответ 1, потому что он пересек границу с января по февралю, поэтому, хотя пролет составляет 2 дня, Dateiff вернет значение 1 - он пересек 1 границу даты.

select datediff(mi, '2010-01-22 15:29:55.090' , '2010-01-22 15:30:09.153')

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

89
ответ дан 24 November 2019 в 11:13
поделиться

Проверьте Dateiff Out Out Online.

0
ответ дан 24 November 2019 в 11:13
поделиться
SELECT DATEDIFF (MyUnits, '2010-01-22 15:29:55.090', '2010-01-22 15:30:09.153')

Замените «Myunits» на основе Датифифа на Datatiff на MSDN

25
ответ дан 24 November 2019 в 11:13
поделиться
SELECT  DATEDIFF(day, '2010-01-22 15:29:55.090', '2010-01-22 15:30:09.153')

Заменить день с другими подразделениями, в которых вы хотите получить разницу, вроде , вторых , минута и т. Д.

15
ответ дан 24 November 2019 в 11:13
поделиться

Внутри SQL-сервера даты хранятся в виде 2-х целых чисел. Первое целое число - это количество дат до или после базовой даты (1900/01/01). Второе целое число хранит количество тиков часов после полуночи, каждый тик - 1/300 секунды.

Больше информации здесь

В связи с этим, я часто нахожу, что самый простой способ сравнения дат - это их простое вычитание. Это обрабатывает 90% моих случаев использования. Например,

select date1, date2, date2 - date1 as DifferenceInDays
from MyTable
...

Когда мне нужен ответ в единицах, отличных от дней, я использую DateDiff.

5
ответ дан 24 November 2019 в 11:13
поделиться
Другие вопросы по тегам:

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