SQL Server-获取删除了分钟和秒的日期时间(仅日期和小时)

时间:2020-04-19 06:44:21

标签: sql sql-server datetime

如何获取日期时间以仅保留其日期和时间?

“分钟和秒”应转换为0。

也就是说,仅将DateTime转换为日期和小时。

例如:我希望日期时间GetDate()或'2020-01-01 12:45:50'为'2020-01-01 12:00:00'

1 个答案:

答案 0 :(得分:0)

最快且最有效的获取DateTime的解决方案是:

DECLARE @testDate DATETIME = GETDATE();
SELECT DATEADD(hour, DATEDIFF(hour, 0, @testDate), 0);

以下是其他替代方法,但是由于额外的CAST导致效率略低。

添加以下查询,因为有些查询可能会更容易理解。

DECLARE @testDate DATETIME = GETDATE();
SELECT CAST(CAST(@testDate AS DATE) AS DATETIME)+CAST(DATEPART(HOUR,@testDate) AS FLOAT)/24;
SELECT DATEADD(HOUR,DATEPART(HOUR,@testDate),CAST(CAST(@testDate AS DATE) AS DATETIME));