我需要将实际日期时间参考日与表示小时/分钟信息的varchar值连接起来。
我已阅读有关DateTime操作的documentation但尚未找到如何执行此操作。
这是我的样本:
DECLARE @ref_day [datetime]
DECLARE @hours [varchar](15)
DECLARE @result [datetime]
SET @ref_day = '2015-10-06'
SET @hours = '07:30'
SET @result = ???
我的预期结果是一个看起来像这样的DateTime对象:
@result = 2015/10/06 07:30:00.000
答案 0 :(得分:0)
试试这个:
DECLARE @ref_day [datetime]
DECLARE @hours [varchar](15)
DECLARE @result [datetime]
SET @ref_day = '2015-10-06'
SET @hours = '07:30'
SET @result = DATEADD(day, DATEDIFF(day, 0, @ref_day), @hours)
答案 1 :(得分:0)
使用DATETIMEFROMPARTS
SQL Server 2012 +:
<强> LiveDemo 强>
DECLARE @ref_day DATETIME;
DECLARE @hours VARCHAR(100);
DECLARE @result DATETIME;
SET @ref_day = '2015-10-06'
SET @hours = '07:30';
SELECT @result = DATETIMEFROMPARTS(YEAR(@ref_day),
MONTH(@ref_day),
DAY(@ref_day),
DATEPART(hh,@hours),
DATEPART(mi, @hours),
0,
0);
SELECT @result;
答案 2 :(得分:0)
您可以向@hours
变量添加秒数并将其转换为时间,然后在以下内容中与@ref_day
结束:
DECLARE @ref_day [datetime]
DECLARE @hours varchar(20)
DECLARE @result [datetime]
SET @ref_day = '2015-10-06'
SET @hours = '07:30'
SET @result = @ref_day + ' ' + cast(@hours + ':00' as time)
SELECT @result
<强>输出强>
2015-10-06 07:30:00.000
答案 3 :(得分:0)
尝试使用以下查询
DECLARE @ref_day [datetime]
DECLARE @hours [varchar](15)
DECLARE @result [datetime]
SET @ref_day = '2015-10-06'
SET @hours = '07:30'
SET @result = @ref_day + @hours
SELECT FORMAT(@result,'yyyy/MM/dd hh:mm:ss.000', 'en-us')
答案 4 :(得分:0)
可以添加2个日期时间,只需将时间转换为日期时间并添加如下:
DECLARE @ref_day datetime = '2015-10-06'
DECLARE @hours varchar(15) = '07:30'
SELECT @ref_day +cast(@hours as datetime)
结果:
2015-10-06 07:30