我有這樣總沒有在SQL數年圖
id name fromdate todate
1 abc 1993 2011
2 def 2006 2016
數據現在我想總的持續時間即我想了多少年的員工開支1993至2011年在這裏顯示了年花
id name fromdate todate total_years
1 abc 1993 2011 18
2 def 2006 2016 10
查詢
select * from employee
我有這樣總沒有在SQL數年圖
id name fromdate todate
1 abc 1993 2011
2 def 2006 2016
數據現在我想總的持續時間即我想了多少年的員工開支1993至2011年在這裏顯示了年花
id name fromdate todate total_years
1 abc 1993 2011 18
2 def 2006 2016 10
查詢
select * from employee
不要減去beetween TODATE並沒有fromdate柱:
SELECT
id,
name,
fromdate,
todate,
CASE ISNUMERIC(ISNULL(todate,'')) WHEN 0 THEN 0 ELSE CAST(todate AS INT)-CAST(fromdate AS INT) END as total_years
from employee
這顯示錯誤。操作數數據類型char無效減算子。 –
意味着你的列是不是在你投你的價值的話整數,讓我給一些時間來更新我的答案 –
對不起我的壞,這是不是int值 –
你的輸出意味着你想下面的查詢:
select id, name, fromdate, todate,
cast(todate as int) - cast(fromdate as int) as total_years
from employee
看來,你是存儲您的年柱爲文本。這不是一個好主意,而應該使用數字類型。實際上,將實際日期存儲在這些列中會更好,這將使其更容易處理。
這顯示錯誤..操作數的數據類型char是減法操作 –
無效@ user123使用'CAST(todate as int)'。看起來,你將你的歲月存儲爲文本,而不是一個好主意。 –
對不起,這不是int值 –
你確定報告10年的記錄id = 2是你想要的嗎? –
'fromdate'和'todate'列只存儲一個整數年,還是有一個完整日期? –
只有int值.. –