PDA

View Full Version : جمع کردن دو مقدار time در جدول



hattarzadeh
شنبه 12 آذر 1390, 13:16 عصر
با سلام خدمت دوستان
من میخوام دو مقدار time رو تو جدولم با هم جمع کنم Data Type فیلدهام هم از نوع time(7) هستش حالا باید چکار کنم از دستور sum استفاده میکنم ولی پیغام می ده که نمی تونه مقادیر time رو با هم جمع کنه.

hattarzadeh
یک شنبه 13 آذر 1390, 07:17 صبح
سلام دوستان
من تو پروژه ام به این مشکل برخوردم و گیر افتادم می دونم برای شما ساده اس ولی تو رو به خدا کمکم کنید

hamid_shrk
یک شنبه 13 آذر 1390, 09:57 صبح
اگه از نوع datetime باشه باید جواب بده ، من این مدلیشئ تست کردن جواب گرفتم :

select temp1.time+temp2.time From
(select Sales.time from Table where id='value1') as temp1,
(select Sales.time from Table where id='value2' )as temp2
END

hattarzadeh
شنبه 26 آذر 1390, 12:00 عصر
با تشکر از تمام دوستان که می خواستن به من کمک کنن ولی نکردن
این هم جواب سوال خودم برای اونایی که دنبالشن ولی پیداش نمی کنن

WITH [seconds] AS
(
SELECT [seconds] = SUM(DATEDIFF(SECOND,
DATEADD(DAY, 0, DATEDIFF(DAY, 0,fildname)), fildname))
FROM tablename
)
SELECT
Total_Duration = RIGHT('0000' + RTRIM([seconds]/3600), 4)
+ ':' + RIGHT('00' + RTRIM(([seconds] % 3600) / 60), 2)
+ ':' + RIGHT('00' + RTRIM(([seconds] % 3600) % 60), 2)
FROM [seconds];
روش بالا مجموع کلی را حساب میکنه و روش پایین برای یک شناسه خاص مجموع میده

WITH [seconds] AS
(
SELECT [seconds] = SUM(DATEDIFF(SECOND,
DATEADD(DAY, 0, DATEDIFF(DAY, 0, fildname)), fildname))
FROM tablename where statment)
SELECT
Total_Duration = RIGHT('0000' + RTRIM([seconds]/3600), 4)
+ ':' + RIGHT('00' + RTRIM(([seconds] % 3600) / 60), 2)
+ ':' + RIGHT('00' + RTRIM(([seconds] % 3600) % 60), 2)
FROM [seconds];