2013-10-05 9 views
56

MS-SQL Server 2008 R2で現在の日付を取得するにはどうすればよいですか?SQL Serverで現在の日付を取得していますか?

私のデータベース内の列の形式は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

どうすればいいですか?

答えて

89
SELECT CAST(GETDATE() AS DATE) 

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

DATETIMEは、「次の形式で格納されていません」。それらはバイナリ形式で格納されます。

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

質問の表示形式は、ストレージに依存しません。

特定の表示形式への書式設定は、アプリケーションで行う必要があります。

+6

OPがTIMEパートを'00:00:00.000 'に設定してDATETIME結果を取得したい場合、彼は 'SELECT CAST(CAST()AS DATE)AS DATETIME)'を使うことができます。 – LightBulb

+0

@ KamranAhmed、その場合は、[T-SQLの日付と時刻関数リファレンス](http://technet.microsoft.com/en-us/library/ms186724(v= sql.105) ).aspx)。 – LightBulb

+2

更新してもう一度お試しください。私は間違いを犯した後、適切なリンクに変更しました。そのために残念。 – LightBulb

11

SQL Server 2008を使用している場合は、Martinの回答に進んでください。

あなた自身が、私が使用したい、あなたはDateカラム型へのアクセスを持っていないSQL Server 2005でそれを行うために必要と判明した場合:私はそれを追加したい

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

SQLFiddle

関連する問題