如何从tsql中的日期和字符串创建datetime
我在T-SQL中有一个存储过程。我想从日期和字符串创建日期时间 所以我有这个:如何从tsql中的日期和字符串创建datetime,sql,tsql,Sql,Tsql,我在T-SQL中有一个存储过程。我想从日期和字符串创建日期时间 所以我有这个: DECLARE @DATE AS DATE DECLARE @TIME AS NVARCHAR(5) SET @DATE = NOW() /*2017-10-11*/ SET @TIME = '08:00' 现在,我想创建一个日期“2017-10-11 08:00:00”这将起作用: DECLARE @DATE AS DATE; DECLARE @TIME AS NVARCHAR(5); SET @DATE =
DECLARE @DATE AS DATE
DECLARE @TIME AS NVARCHAR(5)
SET @DATE = NOW() /*2017-10-11*/
SET @TIME = '08:00'
现在,我想创建一个日期“2017-10-11 08:00:00”这将起作用:
DECLARE @DATE AS DATE;
DECLARE @TIME AS NVARCHAR(5);
SET @DATE = GETDATE();
SET @TIME = '08:00';
SELECT CONCAT(@DATE, ' ', @TIME);
或者,如果您希望它作为datetime
datatype
SELECT CAST(CONCAT(@DATE, ' ', @TIME) AS DATETIME)
这将有助于:
DECLARE @DATE AS DATE;
DECLARE @TIME AS NVARCHAR(5);
SET @DATE = GETDATE();
SET @TIME = '08:00';
SELECT CONCAT(@DATE, ' ', @TIME);
或者,如果您希望它作为datetime
datatype
SELECT CAST(CONCAT(@DATE, ' ', @TIME) AS DATETIME)
您看起来有点像:
DECLARE @DATE AS DATE
DECLARE @TIME AS NVARCHAR(5)
SET @DATE = GETDATE() /*2017-10-11*/
SET @TIME = '08:00'
SELECT CONVERT(DATETIME, CONVERT(VARCHAR, @DATE) + ' '+ CONVERT(VARCHAR, @TIME))
输出:
2017-10-11 08:00:00.000
您看起来有点像:
DECLARE @DATE AS DATE
DECLARE @TIME AS NVARCHAR(5)
SET @DATE = GETDATE() /*2017-10-11*/
SET @TIME = '08:00'
SELECT CONVERT(DATETIME, CONVERT(VARCHAR, @DATE) + ' '+ CONVERT(VARCHAR, @TIME))
输出:
2017-10-11 08:00:00.000
下面是一个不包含字符串连接的解决方案:
DECLARE @TIME AS NVARCHAR(5)
DECLARE @MINUTES AS INT
DECLARE @DATETIME AS DATETIME = CONVERT(DATE, GETDATE()) /* 2017-10-11 */
SET @TIME = '08:00'
SET @MINUTES = DATEDIFF(MI,
0,
@TIME) /* Get number of minutes from @TIME */
SET @DATETIME = DATEADD(MI,
@MINUTES,
CONVERT(DATETIME, @DATETIME)) /* Add the minutes to @DATETIME */
SELECT @DATETIME
下面是一个不包含字符串连接的解决方案:
DECLARE @TIME AS NVARCHAR(5)
DECLARE @MINUTES AS INT
DECLARE @DATETIME AS DATETIME = CONVERT(DATE, GETDATE()) /* 2017-10-11 */
SET @TIME = '08:00'
SET @MINUTES = DATEDIFF(MI,
0,
@TIME) /* Get number of minutes from @TIME */
SET @DATETIME = DATEADD(MI,
@MINUTES,
CONVERT(DATETIME, @DATETIME)) /* Add the minutes to @DATETIME */
SELECT @DATETIME
我可以在select语句中使用它吗?是的,或者你可以将它声明为变量并从中使用它你是use DATE所以getdate()被截断,我现在得到它,请忽略它我可以在select语句中使用它吗?是的,或者你可以将它声明为变量并从中使用它你是use DATE所以getdate()被截断,我现在得到它,请忽略此项。您的代码有效,但日期错误。时间是2017年11月10日08:00,而不是2017年10月11日您的代码有效,但日期错误。时间是2017年11月10日08:00,而不是2017年10月11日