Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将时间变量放入smalldatetime变量的最简单方法(仅保留日期的时间部分)_Sql_Sql Server_Datetime_Sql Server 2008_Time - Fatal编程技术网

Sql 将时间变量放入smalldatetime变量的最简单方法(仅保留日期的时间部分)

Sql 将时间变量放入smalldatetime变量的最简单方法(仅保留日期的时间部分),sql,sql-server,datetime,sql-server-2008,time,Sql,Sql Server,Datetime,Sql Server 2008,Time,我有两个变量 declare @dt1 smalldatetime = '2020-07-30 10:00:00' declare @t1 time = '13:00:00' 将t1转换为dt1以获得'2020-07-30 13:00:00'(而不失去2020-07-30)我个人会将它们转换为ISOvarchar值,连接并转换回: DECLARE@dt1 smalldatetime='2020-07-30T10:00:00'; 声明@t1时间='13:00:00'; 选择CONVERT(sma

我有两个变量

declare @dt1 smalldatetime = '2020-07-30 10:00:00'
declare @t1 time = '13:00:00'

t1
转换为
dt1
以获得
'2020-07-30 13:00:00'
(而不失去2020-07-30)

我个人会将它们转换为ISO
varchar
值,连接并转换回:

DECLARE@dt1 smalldatetime='2020-07-30T10:00:00';
声明@t1时间='13:00:00';
选择CONVERT(smalldatetime,CONVERT(varchar(10),@dt1126)+'T'+CONVERT(varchar(8),@t1114),126);
也许是这个

declare @dt1 smalldatetime = '2020-07-30 10:00:00'
declare @t1 time = '13:00:00'


SELECT CAST(LEFT(CONCAT(CAST(@dt1 AS DATE), 'T', @t1), 19) AS SMALLDATETIME)
我将
cast()
smalldatetime
转换为
date
以截断时间分量,然后返回
smalldatetime
。然后您也可以将
cast()
转换为
smalldatetime
的其他时间组件,并将这两个组件添加到:

select 
    cast(cast(@dt1 as date) as smalldatetime) 
    + cast(@t1 as smalldatetime) as newdatetime

| newdatetime | | :--------------- | | 2020-07-30 13:00 | |新日期时间| | :--------------- | | 2020-07-30 13:00 |
您可以将三个小时添加到当前的
SMALLDATETIME
,也可以通过连接所需的部分来创建一个新的时间:

DECLARE@dt1 SMALLDATETIME='2020-07-30 10:00:00'
声明@t1时间='13:00:00'
挑选
@dt1作为“源”,
DATEADD(HOUR,3,@dt1)作为“添加了三个小时”,只需添加三个小时即可
CONVERT(SMALLDATETIME,--连接所需的部分并转换
DATETIMEFROMPARTS(DATEPART(年份,@dt1),
日期部分(月,@dt1),
日期部分(日,@dt1),
日期部分(小时,@t1),
日期部分(分钟,@t1),
日期部分(秒,@t1),
0)
)作为“连接部件”
结果:

source |添加三小时|连接部分
----------------------------------------------------------------
2020-07-30 10:00:00 |2020-07-30 13:00:00    |2020-07-30 13:00:00

您尝试过什么?你在哪里卡住了?请让我们看看你的尝试。 | newdatetime | | :--------------- | | 2020-07-30 13:00 |