Intereting Posts
В чем разница между драйверами OLEDB / ODBC при подключении к SQL Server? Какая версия .Net Framework поставляется с SQL Server 2008? Несколько COUNT SELECTS из одной таблицы в одном запросе Использовать определенную переменную в SELECT приводит к неправильной ошибке синтаксиса Как использовать LockModeType.NONE с спящим режимом Ошибка синтаксического анализа XML при попытке чтения значений узлов XML Случайный выбор строки внутри хранимой процедуры Несколько значений в SQL CASE's THEN Statement Может ли таблица быть «слишком малой», чтобы получить какую-либо прибыль, индексируя ее? Как создать эту систему шифрования, которая позволяет нескольким пользователям / объектам Переносы базы данных для SQL Server Назначить роль db_denydatawriter пользователю dbo Приложение Multitenant NHibernate с отдельной схемой SQL Server для каждого арендатора Вычисление% ставки на основе двух измерений даты в одном кубе Конфигурация поставщика инфраструктуры Entity Framework

SQL Server: понимание функции DATEDIFF

У меня трудности с пониманием функции DATEDIFF. При запросе

SELECT DATEDIFF(YEAR, 0, getdate()) 

Я получаю разницу между текущим годом и годом 1900 года, результатом которого является 111. Я думаю, что время начала должно быть временем, а не целым числом, равным 0. Как 0 можно использовать? Почему начальный год в 1900 году, а не 1753, как и должно быть, когда формат равен дате?

Solutions Collecting From Web of "SQL Server: понимание функции DATEDIFF"

Он работает в datetime из-за неявного преобразования 0 до 1 января 1900 года.

Почему не 1900? Почему 0 = 31 декабря 1899 года для MS Access? Почему временные метки unix с 01 января 1970 года?

1753 также довольно произволен: это главный переключатель в григорианский календарь, но он несовместим. SQL Server 2008 восходит к 01 января 0001 года с более новыми типами.