同等のものは何ですか:
TRUNC(SYSDATE)
... SQL Server 2005では?
推奨:
DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
これは別の方法ですが、FLOATにキャストするため危険です。 DATEADD/DATEDIFFアプローチと同様に、パフォーマンスをスケーリングしないことも実証されています。
CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)
もう1つのオプションは、 [〜#〜] convert [〜#〜] (MSSQL 2008以降)を使用して、適切なスタイルを使用するか、SUBSTRINGできるスタイルを使用することです。しかし、dateadd/datediffソリューションと比較したパフォーマンスについてはわかりません。
例えば.
SELECT SUBSTRING(CONVERT(nvarchar(30), GETDATE(), 120), 1, 16)
戻り値:
2012-01-03 15:30
1分あたりに作成された行を一覧表示するグループを使用した例(「作成された」日時列を前提としています):
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)