Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: 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 вся ветка

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.036 c
15-1162202026
IMHO
2006-10-30 12:53
2006.11.19
Как нужно есть?


15-1162199622
Сатир
2006-10-30 12:13
2006.11.19
Создание невизуального компонента.


4-1152515922
Style
2006-07-10 11:18
2006.11.19
Как получить Company Name?


8-1144648634
Wolfram
2006-04-10 09:57
2006.11.19
Где взять исходник работающей программы для записи звука?


2-1162718590
leonidus
2006-11-05 12:23
2006.11.19
Как с помощью библиотеки TNT работать с UTF-8 ?