Форум: "Базы";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизКак вычислить кол-во месяцев Найти похожие ветки
← →
Merko2005 © (2006-09-21 07:56) [0]Использую SQL Server 2000
В табл есть три поля: 1) Дата начала, тип - datetime
2) Конечная дата, тип - datetime
3) Срок, тип - integer
Как мне так сделать чтоб в поле Срок выводилось количество месяцев, т.е. Срок= Конечная дата - Дата начала?
Использую компоненты DBEdit.
Если не трудно напишите код.
Заранее блягодарен.
← →
ЮЮ © (2006-09-21 08:02) [1]Для начала приведи понятие "количество месяцев".
Лучше на пальцах: Сколько месяцев между
30.01.01 и 31.01.01
31.01.01 и 01.02.01
31.01.01 и 28.02.01
30.01.01 и 01.03.01
← →
Merko2005 © (2006-09-21 08:11) [2]0
1
1
2
← →
ЮЮ © (2006-09-21 08:17) [3]30.01.01 и 01.03.01 - 2. Я вижу только 1 месяц и несколько дней, которые почему то в (1) образуют 0 месяцкв, а в (2) 1 месяц.
Как видишь, на пальцах не объяснил :) Давай словами
← →
Merko2005 © (2006-09-21 08:19) [4]Хорошо в таком случае можно чтоб вместо месяцев было количество дней так по моему проще
← →
ЮЮ © (2006-09-21 08:24) [5]количество дней = Конечная дата - Дата начала
Дата - это [Дней].[Часть суток] прошедчих от даты X. Поэтому их можно вычитать, прибавлять дни(целая часть) и часы (добная как часть суток)
← →
Merko2005 © (2006-09-21 08:28) [6]Формат даты: 01.12.2003
Суть вопроса: У меня не получается отнять дату начала от конечной даты из-за несоответсвия типов данных, т.к. поле Срок типа integer а те типа datetime
← →
ЮЮ © (2006-09-21 08:34) [7]
> Формат даты: 01.12.2003
это формат отображения, а не формат хранения
Выполни запрос
SELECT
StartDate, StopDate, StopDate - StartDate as Interval FROM MyTable
и убедись.
StopDate - StartDate следует привести к целому или округлить
← →
Rob_d (2006-09-21 08:34) [8]А что, datediff уже отменили?
← →
Merko2005 © (2006-09-21 08:37) [9]Ладно что-нибудь придумаю, всем спасибо
← →
Павел Калугин (2006-09-21 10:04) [10]А справку почитать перед придумыванием?
Returns the number of date and time boundaries crossed between two specified dates.
Syntax
DATEDIFF ( datepart , startdate , enddate )
Arguments
datepart
Is the parameter that specifies on which part of the date to calculate the difference. The table lists dateparts and abbreviations recognized by Microsoft® SQL Server™.
Datepart Abbreviations
Year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.181 c