сравнение дат sql - PullRequest
       17

сравнение дат sql

0 голосов
/ 09 июня 2011

Мне дали запрос, похожий на этот

select * 
from stuff where stuff.id = 1 
and start_Dt < = todays_date 
and End_Dt > = todays_date 

Я спросил человека, который дал его мне, почему сравнение дат, ответ был «даты начала и окончания необходимы для обеспечения уникального совпадения записи»

Я в замешательстве, не может ли это сравнение сравниться с какой-либо возможной датой?

Ответы [ 2 ]

3 голосов
/ 09 июня 2011

Причина в том, что идентификаторы в вашей таблице не уникальны, то есть вы можете иметь более одной строки с stuff.id = 1.
Но только один в любой момент времени активен. Это проверяется сравнением даты: возвращается строка с stuff.id = 1, которая в настоящее время действительна. В этой строке дата начала находится в прошлом (start_Dt <= todays_date), а дата окончания - в будущем (End_Dt >= todays_date).

0 голосов
/ 09 июня 2011

Чтобы привести пример, иллюстрирующий ответ Даниэля Хилгарта, у вас может быть таблица, содержащая ставку, которая меняется со временем.

Этот конкретный пример показывает стандартную ставку НДС в Великобритании.

id  StartEffectiveDate  EndEffectiveDate    Rate
1   01/01/1900 00:00    30/11/2008 23:59    17.5
1   01/12/2008 00:00    31/12/2009 23:59    15.0
1   01/01/2010 00:00    03/01/2011 23:59    17.5
1   04/01/2011 00:00    01/01/2099 00:00    20.0

Так что для сегодняшнего рейтинга это вернет эту строку

id  StartEffectiveDate  EndEffectiveDate    Rate
1   04/01/2011 00:00    01/01/2099 00:00    20.0

Преимущество этой системы в том, что вы можете реализовать эту таблицу заранее. Таким образом, в декабре 2009 года он будет использовать 15,0 НДС, но автоматически изменится на 17,5, как только ваша компьютерная дата достигнет 1 января 2010 года, а затем снова изменится, когда дата достигнет 4 января 2011 года.

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

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