等同于:
TRUNC(SYSDATE)
...在SQL Server 2005中?
答案 0 :(得分:18)
推荐:
DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
这是另一种选择,但由于投射到FLOAT而存在风险。它也被证明不会扩展性能以及DATEADD / DATEDIFF方法。
CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)
答案 1 :(得分:1)
另一种选择是使用CONVERT(MSSQL 2008及更高版本)并使用适当的样式或使用可以随后进行SUBSTRING的样式。我不知道与dateadd / datediff解决方案相比的性能。
e.g。
SELECT SUBSTRING(CONVERT(nvarchar(30), GETDATE(), 120), 1, 16)
返回:
2012-01-03 15:30
使用组列出每分钟创建的行的示例(预先假定'已创建'日期时间列):
SELECT SUBSTRING(CONVERT(nvarchar(30), created, 120), 1, 16) as [minute]
, COUNT(1) as [per min]
FROM foo
GROUP BY SUBSTRING(CONVERT(nvarchar(30), created, 120), 1, 16)