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

SQLで日付を比較するクエリ

    地域の文化に応じて意味が異なる「2013-04-12」の代わりに、文化不変形式として認識されている「20130412」を使用してください。

    12月4日と比較したい場合は、「20131204」と書く必要があります。 4月12日と比較したい場合は、「20130412」と書く必要があります。

    SQLServerのドキュメントの「WriteInternationalTransact-SQLStatements」の記事では、カルチャに依存しないステートメントの記述方法について説明しています。

    他のAPI、またはTransact-SQLスクリプト、ストアドプロシージャ、トリガーを使用するアプリケーションでは、区切りのない数値文字列を使用する必要があります。たとえば、yyyymmddは19980924です。

    編集

    ADOを使用しているため、最適なオプションは、クエリをパラメーター化し、日付値を日付パラメーターとして渡すことです。このようにして、フォーマットの問題を完全に回避し、パラメータ化されたクエリのパフォーマンス上の利点も得られます。

    更新

    リテラルでISO8601形式を使用するには、すべての要素を指定する必要があります。 datetimeのドキュメントのISO8601セクションから引用するには

    ISO 8601形式を使用するには、形式の各要素を指定する必要があります。これには、形式で表示されるT、コロン(:)、およびピリオド(。)も含まれます。

    ...2番目のコンポーネントの端数はオプションです。時間コンポーネントは24時間形式で指定されます。



    1. OracleのCONNECTBY... START WITHと同等のPostgreSQL構文は何ですか?

    2. OracleDatabaseのPL/SQL参照カーソルの概要

    3. Androidアプリにユーザー名とパスワードを保存するための最良のオプション

    4. SQL Serverの名前からオブジェクトのIDを取得します:OBJECT_ID()