数据集查询生成器中的 DATEDIFF

DATEDIFF in DataSet Query Builder

如何在查询生成器中使用 DATEDIFF?我正在尝试计算插入时的年龄。

我在 SqlQuery 中完成了这个有效的插入代码

    INSERT INTO [dbo].[Employee]
           ([FirstName]
           ,[MiddleName]
           ,[LastName]
           ,[Age]
           ,[Gender]
           ,[Birthday]
           ,[PositionID]
           ,[Status]
           ,[ContactNumber]
           ,[Photo]
           ,[Password])
VALUES
           ('Lovenia'
           ,'Celestial'
           ,'Roman'
           ,(SELECT DATEDIFF(hour,'5-28-1998',GETDATE())/8766)
           ,'Male'
           ,'01-28-1998'
           ,'2'
           ,'Employed'
           ,'09128773636'
           ,null
           ,'somepassword')
GO

然后当我将它转换为 Query Builder 时,弹出一个错误提示不允许子查询

这是QueryBuilder中的代码

    INSERT INTO Employee
                         (FirstName, MiddleName, LastName, Age, Gender, Birthday, PositionID, Status, ContactNumber, Photo, Password)
VALUES        (@FirstName,@MiddleName,@LastName, (Select DATEDIFF('hour',@Birthday, GETDATE()) / 8766),@Gender,@Birthday,@PositionID,@Status,@ContactNumber,@Photo,@Password)

我删除了 select 语句,只遗漏了 DATEDIFF(hour,'5-28-1998',GETDATE())/8766

但还是报错

我了解到 DATEDIFF() 在查询生成器中不受支持,那么有没有其他方法(类似于 DATEDIFF())来计算年龄?

没关系,我想通了

错误在 DATEDIFF() 的参数 1,我删除了 qoutes 并将其更改为 hh,还修复了从字符串到日期的转换:D

这是代码

INSERT INTO Employee (FirstName, MiddleName, LastName, Age, Gender, Birthday, PositionID, Status, ContactNumber, Photo, Password)
VALUES        (@FirstName,@MiddleName,@LastName, DATEDIFF(hh, CONVERT(varchar(30),@Birthday, 102), GETDATE()) / 8766,@Gender,@Birthday,@PositionID,@Status,@ContactNumber,@Photo,@Password)