SQLServer 2008 を使用しています。日時形式のフィールド Y を持つテーブル X があります。私のクエリの WHERE ステートメントでは、フィールド Y の日付が現在の日付と等しい行のみを保持したいと考えています。
インターネットを検索しましたが、SQLServer/ で機能する例が見つかりませんでした
ご協力ありがとうございました!
SQLServer 2008 を使用しています。日時形式のフィールド Y を持つテーブル X があります。私のクエリの WHERE ステートメントでは、フィールド Y の日付が現在の日付と等しい行のみを保持したいと考えています。
インターネットを検索しましたが、SQLServer/ で機能する例が見つかりませんでした
ご協力ありがとうございました!
これを試して:
WHERE CONVERT(DATE, Y) = CONVERT(DATE, getdate())
日付を特定の形式に変換する必要があります。日付をdatetimeデータ型でSQLサーバーに保存すると、SQLサーバーはデフォルトの時刻で日付を自動的に設定するためです。getdate() でクエリを作成すると、現在の日付と時刻が取得されるため、デフォルトの時刻で保存した日付とは一致しません。
したがって、以下の 2 つの方法でこれを実行し、実際の結果を得ることができます。
1) 上記で既に行われているDate DataType を使用して変換します。
2)特定の形式のvarcharデータ型に変換します。
select * from X where Convert(varchar(10),Y,120) = CONVERT(varchar(10),GETDATE(),120)