1. ホーム
  2. sql-server

[解決済み] SQL Server datetime LIKE select?

2022-12-31 05:23:46

質問

MySQLで

select * from record where register_date like '2009-10-10%'

SQL Serverではどのような構文になりますか?

どのように解決するのですか?

DATEPART()関数を使用することができます。

SELECT * FROM record 
WHERE  (DATEPART(yy, register_date) = 2009
AND    DATEPART(mm, register_date) = 10
AND    DATEPART(dd, register_date) = 10)

この方法は、時間の要素を無視し、翌日の日付を使って選択を制限する必要がないので、読みやすいと思います。適切な DatePart コードを使用して追加の句を追加することにより、粒度を大きくしたり小さくしたりすることができます。

AND    DATEPART(hh, register_date) = 12)

で、12から1までの間に作られたレコードを取得します。

を参照してください。 MSDN DATEPART ドキュメント を参照してください。