Вниз
Скачать: 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.042 c
1-1159987046
XfroSt
2006-10-04 22:37
2006.11.19
Узнать свойства "Подключения по локальной сети"


1-1160228759
DeBa
2006-10-07 17:45
2006.11.19
Узнать парент


5-1143226107
Volf_555
2006-03-24 21:48
2006.11.19
Проблема с присвоением имени новому компоненту


15-1162213955
Gadenysh
2006-10-30 16:12
2006.11.19
отсортировать объявления методов


2-1162212959
Alral
2006-10-30 15:55
2006.11.19
Memo1.Lines, var str: TStrings




   Наверх