在SQL中忽略FROM GETDATE()的秒和毫秒

时间:2015-02-05 06:59:23

标签: sql tsql

我想删除/忽略来自GETDATE()SQL函数的秒和毫秒。 当我执行时,

SELECT GETDATE()

输出就像

2015-01-05 14:52:28.557

我想从上面的输出中忽略秒和毫秒。优化和最佳方法是什么?

我试图通过这样的类型转换来做到这一点:

SELECT CAST(FORMAT(GETDATE(),'yyyy-MM-dd HH:mm:0') AS datetime) 

这是正确和优化的方法吗?

3 个答案:

答案 0 :(得分:1)

试试这个:

SELECT dateadd(minute, datediff(minute, 0, GETDATE()), 0)

查询使用DATEDIFF返回两个日期之间的分钟数的事实,忽略较小的单位。 0是过去的固定日期。

它可以很容易地适应其他时间单位。

答案 1 :(得分:1)

我要使用Codo has shownDATEADD / DATEDIFF技巧,或者只是将其投放到smalldatetime 1

select CAST(GETDATE() as smalldatetime)

我避免任何涉及通过字符串对值进行四舍五入的事情。

1 此时,如果秒始终无关紧要,则可能适合更改架构以使用此数据类型。

答案 2 :(得分:0)

我认为你的方式很好,如果它有效(看起来应该如此,但我还没有测试过。)还有很多其他可能的方法。这是一个:

select cast(convert(char(16), getdate(), 120) as datetime)