Что мы передаем 0 В функции даты В качестве аргументов для расчета начальной даты, конечной даты, чем объясняется этот аргумент? - PullRequest
0 голосов
/ 03 июля 2018

здесь, как эти запросы, Т.е.: вот здесь вычисляется первая дата года,

select DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0)

и здесь используется 0, как это объяснить?

1 Ответ

0 голосов
/ 03 июля 2018

Вы имеете в виду "почему", очевидно.

0 - произвольная дата, которую легко написать, я думаю, 1 января 1753 года. Это не имеет значения в слишком распространенной формуле dateadd (datediff ()), ЛЮБАЯ дата / время были бы столь же хороши, если бы ее поместить как в аргументах dateadd и datediff. Но, 0 легко написать, плюс все делают то же самое, и это создает некоторый комфорт, видя это и понимая это.

Вот как работает dateadd-datediff: например, в вашем запросе

DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0)

, вы хотите первый момент года getdate (). Как ты это делаешь? Вы спрашиваете, сколько лет прошло с 1 января 1753 года, чтобы получить дату (3 июля 2018 года), в результате чего получается 265. Затем вы добавляете это число (265) лет к 1 января 1753 года. Поскольку вы добавили только годы, а не месяцы, дни, часы и т. д. вы получите 01.01.2008 00: 00: 00.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...