Вниз
Скачать: CL | DM;

Как вычислить кол-во месяцев   Найти похожие ветки 

 
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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.047 c
2-1162376939
Vladimir1984
2006-11-01 13:28
2006.11.19
как открыть файл xls, и по координатам построить поверхность?


1-1159802399
kyn66
2006-10-02 19:19
2006.11.19
Отловить в процессах ДОС-приложение


3-1158737712
memo
2006-09-20 11:35
2006.11.19
Экспорт при помощи TDBGridEh


15-1162190909
Prohodil Mimo
2006-10-30 09:48
2006.11.19
Как проверить рабочий ли COM порт?


3-1158580205
AW
2006-09-18 15:50
2006.11.19
создание приложения в Delphi для FireBird




   Наверх