13

SQLServer 2008 を使用しています。日時形式のフィールド Y を持つテーブル X があります。私のクエリの WHERE ステートメントでは、フィールド Y の日付が現在の日付と等しい行のみを保持したいと考えています。

インターネットを検索しましたが、SQLServer/ で機能する例が見つかりませんでした

ご協力ありがとうございました!

4

2 に答える 2

34

これを試して:

WHERE CONVERT(DATE, Y) = CONVERT(DATE, getdate())
于 2012-08-31T09:42:36.300 に答える
4

日付を特定の形式に変換する必要があります。日付をdatetimeデータ型でSQLサーバーに保存すると、SQLサーバーはデフォルトの時刻で日付を自動的に設定するためです。getdate() でクエリを作成すると、現在の日付と時刻が取得されるため、デフォルトの時刻で保存した日付とは一致しません。

したがって、以下の 2 つの方法でこれを実行し、実際の結果を得ることができます。

1) 上記で既に行われているDate DataType を使用して変換します。

2)特定の形式のvarcharデータ型に変換します。

select * from X where Convert(varchar(10),Y,120) = CONVERT(varchar(10),GETDATE(),120)
于 2012-08-31T12:54:30.083 に答える