Sql server 2012 是否可以在T-SQL中设置两个变量和一个变量

Sql server 2012 是否可以在T-SQL中设置两个变量和一个变量,sql-server-2012,Sql Server 2012,早上好 在我的一个存储过程的顶部,我有两个用于日期的变量。 @StartDate表示当天的开始时间,@EndDate表示当天的当前时间 DECLARE @StartDate DATE DECLARE @EndDate DATETIME SET @StartDate = GETDATE() SET @EndDate = GETDATE() PRINT @StartDate PRINT @EndDate 我想知道是否可以在同一行中将@StartDate和@EndDate设置为GETDATE()

早上好

在我的一个存储过程的顶部,我有两个用于日期的变量。 @StartDate表示当天的开始时间,@EndDate表示当天的当前时间

DECLARE @StartDate DATE
DECLARE @EndDate DATETIME

SET @StartDate = GETDATE()
SET @EndDate = GETDATE()

PRINT @StartDate
PRINT @EndDate
我想知道是否可以在同一行中将@StartDate@EndDate设置为GETDATE()


谢谢你

我会让你摆脱痛苦:不,你不能。我的猜测是,要么您希望两个变量完全相同(消除两次调用
GETDATE()
返回不同值的可能性,不管值有多小),要么您只需要更少的函数调用。SQL Server不支持以下语法

SET @StartDate = @EndDate = GETDATE()
这甚至可以忽略从
DATETIME
DATE
的隐式缩小(尽管这不是一个真正的问题)。你能做的就是

SET @StartDate = GETDATE()
SET @EndDate = @StartDate
除非您只想保存一行,在这种情况下,您可以用逗号分隔
@Variable=GETDATE()
调用,并且只使用一个
选择

编辑 忘记添加此示例-可能会减少到一行,因此:

SELECT @EndDate = GETDATE(), @StartDate = @EndDate

我会让你摆脱痛苦的:不,你不能。我的猜测是,要么您希望两个变量完全相同(消除两次调用
GETDATE()
返回不同值的可能性,不管值有多小),要么您只需要更少的函数调用。SQL Server不支持以下语法

SET @StartDate = @EndDate = GETDATE()
这甚至可以忽略从
DATETIME
DATE
的隐式缩小(尽管这不是一个真正的问题)。你能做的就是

SET @StartDate = GETDATE()
SET @EndDate = @StartDate
除非您只想保存一行,在这种情况下,您可以用逗号分隔
@Variable=GETDATE()
调用,并且只使用一个
选择

编辑 忘记添加此示例-可能会减少到一行,因此:

SELECT @EndDate = GETDATE(), @StartDate = @EndDate

集合一次只能分配一个变量,但可以选择多个变量

这就是你想要的:

SELECT @StartDate = GETDATE(), @EndDate = GETDATE()

集合一次只能分配一个变量,但可以选择多个变量

这就是你想要的:

SELECT @StartDate = GETDATE(), @EndDate = GETDATE()

你试过了吗?如果是这样的话,会发生什么?我尝试了“设置StartDate,EndDate=GETDATE()”之类的方法,但没有成功。我只是在寻找一种方法,而不是调用GETDATE()两次或将一个变量赋给另一个变量。这不是什么问题,你试过了吗?如果是这样的话,会发生什么?我尝试了“设置StartDate,EndDate=GETDATE()”之类的方法,但没有成功。我只是在寻找一种方法,而不是调用GETDATE()两次或将一个变量赋给另一个变量。这不是什么问题。谢谢你提供的信息。如果要将一个变量放入另一个变量,我必须将EndDate放入StartDate,因为StartDate不需要DATETIME的时间部分。谢谢你提供的信息。如果要将一个变量放入另一个变量,我必须将EndDate放入StartDate,因为StartDate不需要DATETIME的时间部分。干杯