sql >> データベース >  >> RDS >> Sqlserver

SQL Serverのデフォルトの日時形式を提供する設定はどれですか?

    そうしないでください!日付の代わりに文字列を使用したり、文化固有の日付や日時の形式を使用したりしないでください。これは災害のレシピです。

    SQL Serverには「日付形式」はなく、日付を文字列との間で変換するために使用する形式だけがあります。それらの1つはデフォルトであり、サーバーの照合によって制御されます。特定の照合を想定することも依存することもできないため、可能な限り変換を避ける必要があります。さらに、文字列値を渡すと、文字列を基になる列タイプに変換する必要があるため、SQLServerが日付列のインデックスを使用できなくなる可能性があります。

    日付を日付型変数またはパラメーターとして渡す方がはるかに簡単で安全です。このようにして、SQLインジェクション攻撃との間の変換の混乱を回避し、回避します。

    日付の代わりに文字列をサーバーに渡す理由はありません。すべてのSQLServerクライアント(ADO.NETを含む)では、パラメーター化されたクエリを実行できます。 NHibernateやEntityFrameworkなどのORMも、日付型の列に対してパラメーター化されたクエリを生成します。

    文字列リテラルを作成する必要があるときはいつでも、20140913のような不変の形式の1つを使用してください または2012-11-07T18:26:20

    詳細については、国際的なT-SQLステートメントの記述 を参照してください。



    1. MySQLテーブル列に名前を付けるために番号を使用できますか?

    2. PostgreSQLのチェック制約を理解する

    3. PHP-MySQLはストアドプロシージャからoutパラメータの値を取得します

    4. 他の2つの特定のオブジェクトの親であるオブジェクトを見つけるためにSQLクエリを構成するにはどうすればよいですか?