Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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 server 2005 SQL Server 2005我要创建任务在datetime之外启动的时间_Sql Server 2005_Datetime_Datepart - Fatal编程技术网

Sql server 2005 SQL Server 2005我要创建任务在datetime之外启动的时间

Sql server 2005 SQL Server 2005我要创建任务在datetime之外启动的时间,sql-server-2005,datetime,datepart,Sql Server 2005,Datetime,Datepart,在SQLServer2005上,我想创建任务开始时间的表示形式。我有一个日期时间是“2010-10-01 12:30:00.000”,这是实际的开始时间。我想以“12:00”结束,这是任务开始的时间。关于如何释放“30”分钟有什么好主意吗?如果您只是想从datetime值中消除分/秒/米尔斯,但将其保留为datetime,请使用DATEADD/DATEDIFF: select DATEADD(hour,DATEDIFF(hour,0,`2010-10-01T12:30:00`),0) 它将返回

在SQLServer2005上,我想创建任务开始时间的表示形式。我有一个日期时间是“2010-10-01 12:30:00.000”,这是实际的开始时间。我想以“12:00”结束,这是任务开始的时间。关于如何释放“30”分钟有什么好主意吗?

如果您只是想从datetime值中消除分/秒/米尔斯,但将其保留为datetime,请使用
DATEADD
/
DATEDIFF

select DATEADD(hour,DATEDIFF(hour,0,`2010-10-01T12:30:00`),0)

它将返回
2010-10-01T12:00:00

这将执行您想要的操作:

SELECT DATEADD(hh, DATEDIFF(hh, '20000101', [DateField]), '20000101')
结果:

12:00
2010-10-01 12:00:00.000
作为约会时间

declare @dt datetime 
set @dt = '2010-10-01 12:30:00.000'
select dateadd(hour, datediff(hour, 0, @dt), 0)
结果:

12:00
2010-10-01 12:00:00.000

您想要
12:00
(作为字符串)还是
2010-10-01T12:00:00
(仍然作为日期时间值)?我需要将其保留为日期时间值,以便可以在“介于”条款中使用。这正是我需要的(作为日期时间)。无论如何,我只能得到时间并将其作为datetime保留?@Peter-datetime总是有一个日期部分。如果需要比较不同日期的时间,可以在比较之前修改值,使其具有相同的日期部分。在比较之前,我已将输入更改为字符串值,它工作正常。感谢您的帮助SQL Server 2008年之前唯一与日期时间相关的日期类型是
datetime
。它总是同时包含日期和时间组件,即使您没有在初始化它时使用的字符串文本中指定它们。如果您只想比较两个日期时间的小时部分,忽略两个日期,忽略分钟,只需使用
DATEPART(hour,)
并比较整数。嗨,Damien,我听从了您和Mikael的建议,只是更改了输入日期,以便只比较时间(hour)。非常感谢你在这方面的帮助。一切都很顺利