web-dev-qa-db-ja.com

SQL Serverで現在の日付を取得する

MS-SQL Server 2008 R2の現在の日付を取得する方法を教えてください。

私のデータベースの列のフォーマットはDATETIMEで、日付は以下のフォーマットで格納されています。

+++++++++++++ Vrdate ++++++++++
|                             |
|   2012-11-18 00:00:00.000   |
|   2012-11-19 00:00:00.000   |
|   2013-11-18 00:00:00.000   |
|   2012-12-01 00:00:00.000   |
|   2010-10-09 00:00:00.000   |
|   2012-11-11 00:00:00.000   |
|                             |
+++++++++++++++++++++++++++++++

私は検索しましたが、この形式で日付を取得する方法を見つけることができませんでした(つまり、00:00:00.00でそれに関連付けられた時間があります)。私はGETDATE()関数を見つけましたが、それは日付と一緒に現在の時刻も提供します、私が欲しいのは以下のフォーマットで日付を得ることです:CurrentDate 00:00:00.00

どうやってこれを入手できますか?

69
Kamran Ahmed
SELECT CAST(GETDATE() AS DATE)

時間部分を削除した現在の日付を返します。

DATETIMEsは "次の形式で格納されていません"。それらはバイナリフォーマットで保存されます。

SELECT CAST(GETDATE() AS BINARY(8))

問題の表示形式はストレージとは無関係です。

特定の表示フォーマットへのフォーマットは、あなたのアプリケーションによって行われるべきです。

112
Martin Smith

SQL Server 2008を使用しているので、Martinの回答を参考にしてください。

Dateカラム型にアクセスできないSQL Server 2005でそれを実行する必要があると思う場合は、次のようにします。

SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)

SQLFiddle

14
Bridge