67

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

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

2 답변


108

SELECT CAST(GETDATE() AS DATE)

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

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

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

問題の表示フォーマットはストレージとは無関係です。

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


  • OPがTIMEパートを' 00:00:00.000'に設定したDATETIME結果を取得したい場合は、次のものを使用できます。SELECT CAST(CAST(GETDATE() AS DATE) AS DATETIME)。 - LightBulb
  • @KamranAhmed、その場合は、T-SQL日付と時刻関数のリファレンス。 - LightBulb
  • 更新してやり直してください。私は間違いを犯し、後でそれを適切なリンクに変更しました。そのために残念。 - LightBulb
  • @LightBulbありがとう、きっとそれをチェックするつもりです:) - Kamran Ahmed

14

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

自分自身にアクセスできないSQL Server 2005でそれを実行する必要があると思う場合Date列型、私は使用します:

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

SQLFiddle

リンクされた質問


関連する質問

最近の質問