![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вычислить кол-во месяцев [D6, D7, MSSQL]
Merko2005 © (2006-09-21 07:56:00)Использую SQL Server 2000
В табл есть три поля: 1) Дата начала, тип - datetime
2) Конечная дата, тип - datetime
3) Срок, тип - integer
Как мне так сделать чтоб в поле Срок выводилось количество месяцев, т.е. Срок= Конечная дата - Дата начала?
Использую компоненты DBEdit.
Если не трудно напишите код.
Заранее блягодарен.
Павел Калугин (2006-09-21 10:04:00) [1]А справку почитать перед придумыванием?
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
Merko2005 (2006-09-21 08:37:00) [2]Ладно что-нибудь придумаю, всем спасибо
ЮЮ (2006-09-21 08:34:00) [3]
> Формат даты: 01.12.2003
это формат отображения, а не формат хранения
Выполни запрос
SELECT
StartDate, StopDate, StopDate - StartDate as Interval FROM MyTable
и убедись.
StopDate - StartDate следует привести к целому или округлить
Rob_d (2006-09-21 08:34:00) [4]А что, datediff уже отменили?
Merko2005 (2006-09-21 08:28:00) [5]Формат даты: 01.12.2003
Суть вопроса: У меня не получается отнять дату начала от конечной даты из-за несоответсвия типов данных, т.к. поле Срок типа integer а те типа datetime
ЮЮ (2006-09-21 08:24:00) [6]количество дней = Конечная дата - Дата начала
Дата - это [Дней].[Часть суток] прошедчих от даты X. Поэтому их можно вычитать, прибавлять дни(целая часть) и часы (добная как часть суток)
Merko2005 (2006-09-21 08:19:00) [7]Хорошо в таком случае можно чтоб вместо месяцев было количество дней так по моему проще
ЮЮ (2006-09-21 08:17:00) [8]30.01.01 и 01.03.01 - 2. Я вижу только 1 месяц и несколько дней, которые почему то в (1) образуют 0 месяцкв, а в (2) 1 месяц.
Как видишь, на пальцах не объяснил :) Давай словами
Merko2005 (2006-09-21 08:11:00) [9]0
1
1
2
ЮЮ (2006-09-21 08:02:00) [10]Для начала приведи понятие "количество месяцев".
Лучше на пальцах: Сколько месяцев между
30.01.01 и 31.01.01
31.01.01 и 01.02.01
31.01.01 и 28.02.01
30.01.01 и 01.03.01