如何获取日期时间以仅保留其日期和时间?
“分钟和秒”应转换为0。
也就是说,仅将DateTime转换为日期和小时。
例如:我希望日期时间GetDate()或'2020-01-01 12:45:50'为'2020-01-01 12:00:00'
答案 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));