2016-03-18 6 views
2

ノルウェーの形式を使用していますdd.MM.yyyy私のコンピュータにMS Accessデータベースからデータを取得しようとすると構文エラーが発生しました。クエリ:c#SQLクエリdd.MM.yyyy形式のエラー

query = "SELECT * FROM DateTable WHERE StartDate BETWEEN #18.03.2016# AND #19.03.2016#" 

他の形式(コンピュータの設定とクエリ)を変更すると、すべてが正常です。

PD:私はINSERTを使用して同じ問題があります。 ありがとう

+2

パラメータ化クエリを使用する理由の一つだ – Steve

+0

使用SQLパラメータ - プロバイダオブジェクトは、NET DateTime型を基になるDBに正しく渡す方法を知っています(テキストに変換しないために部分的に)。アクセス表記法のように見えるので、なぜMySQLタグですか? – Plutonix

答えて

1

INSERT/UPDATEとSELECT操作の両方でYYYY-MM-ddのようなISO日付形式を使用することを強くお勧めします。これは、データベースと.netの両方によって正しく理解されます。日付の形式は、表示に関する美容上の問題に過ぎません。正しい日付オブジェクトを持っているときは、望むように表示することができます。

+0

ありがとう!それは私が必要とするすべてのフォーマットで動作しています。 –

+0

あなたは歓迎です – TSungur

0

あなたのコードを知ってはいけないが、あなたはSQL文字列を作成する上で主張すれば、あなたはこのように読み取るために日付値の文字列表現をフォーマットする必要がありますが:

query = "SELECT * FROM DateTable WHERE StartDate BETWEEN #2016/03/18# AND #2016/03/19#" 
+0

私はAccess Databaseにデータを持っています。 Datagrid(WPF)はこのデータベースからのデータで満たされますが、日付ピッカーを使用して選択できる日付でフィルタリングされます。だから私は、フィルタとして使用するデータとしてDateTime型を持っています..各ユーザーは、自分のコンピュータに異なる形式を持つことができます。 –

+0

フォーマットは影響を与えません。それは表示専用です。 – Gustav

+0

とにかく、私はこのフォーマットyyyy/MM/ddを試してみました。そして、それは私が必要とするすべてのoptiondのために働いています。ありがとうございます! –

関連する問題