2014-11-14 79 views
0

我的任務是創建一個函數,該函數使用代表Manager的僱傭日期格式的整數,並以此格式顯示部門名稱,經理姓名和僱傭日期。整數代表日期格式

我都試過,但它也失敗

alter function FormatOfManagerHireDate(@hireDate int) 
returns @t table(DeptName nvarchar(50),ManagerName nvarchar(50),HiringDate nvarchar(50)) 
as 
begin 
    set @hireDate=FORMAT(SYSDATETIME(), 'MM/dd/yy'); 
    insert into @t 
    select Department.Dept_Name,Instructor.Ins_Name,Department.Manager_hiredate 
    from Department inner join Instructor on Instructor.Ins_Id=Department.Dept_Manager 
    where Department.Manager_hiredate [email protected] 
return 
end 

的錯誤是:

消息206,級別16,狀態2,過程FormatOfManagerHireDate,7號線操作數類型衝突:日期不兼容與int

+0

它是如何失敗?如果出現錯誤,請發佈。同時發佈示例數據和預期結果。 – paqogomez 2014-11-14 14:08:32

+0

消息206,級別16,狀態2,過程FormatOfManagerHireDate,第7行 操作數類型衝突:日期與int不兼容 – 2014-11-14 14:09:47

+0

您如何預計從整數到特定日期格式?整數/ dateformat是否存儲在數據庫的表中? – JNevill 2014-11-14 14:10:09

回答

0

我誤解了你的問題,但至少我的答案幫助你找到你的答案。因此,這是您的任務的實際解決方案(摘自下面的評論):

alter function FormatOfManagerHireDate(@hireDateFormat int) 
returns @t table(DeptName nvarchar(50), ManagerName nvarchar(50), HiringDate nvarchar(50)) as 
begin 
    insert into @t 
    select Department.Dept_Name, Instructor.Ins_Name, convert(nvarchar(50), Department.Manager_hiredate, @hireDateFormat) 
    from Department 
    inner join Instructor on Instructor.Ins_Id = Department.Dept_Manager 
return 
end 
+0

非常感謝我得到它 – 2014-11-14 15:01:39

+0

改變功能FormatOfManagerHireDate(@hireDateFormat INT) 回報@t表(DEPTNAME爲nvarchar(50),ManagerName爲nvarchar(50),HiringDate爲nvarchar(50)) 作爲 開始 插入到@t 選擇Department.Dept_Name,Instructor.Ins_Name,轉換(nvarchar(50),Department.Manager_hiredate,@hireDateFormat) 部門內部加入Instructor.Ins_Id = Department.Dept_Manager的教師 返回 結束 – 2014-11-14 15:02:21

+0

哦,您只需要一個返回的函數所有的管理人員只需改變顯示的日期格式即可!那當時相當容易。 :) – Andrew 2014-11-14 15:30:49