数据集查询生成器中的 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)
如何在查询生成器中使用 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)