2

次のクエリの最後の 2 つを機能させようとしていますが、最初のクエリしか機能しません。

 querystream << "select Date, C"<<m_ID<<" from Data" <<nTable <<";";

 querystream << "select Date, C"<<m_ID<<" from Data" <<nTable <<" where Date >= #DateAdd (\"yyyy\", -1, Now())#  ORDER by DATE ASC;";
 querystream << "select Date, C"<<m_ID<<" from Data" <<nTable <<" where Date >= #DateAdd (\"yyyy\", -1, #10/09/2012 09:12#)#  ORDER by DATE ASC;";

誰かアイデアがあれば、私はとても感謝しています、ありがとう、ジェームズ

4

2 に答える 2

0

これはうまくいきます:

querystream << "select Date, C"<<m_ID<<" from Data" <<nTable <<" where Date >= DateAdd (\"yyyy\", -1, Now())  ORDER by DATE ASC;";
querystream << "select Date, C"<<m_ID<<" from Data" <<nTable <<" where Date >= DateAdd (\"yyyy\", -1, #10/09/2012 09:12#)  ORDER by DATE ASC;";

(基本的にDateAdd関数の前後の#を落とします)

また、2 番目のクエリに #YYYY-MM-DD HH:MM# 形式を使用することをお勧めします (#2012-09-10 09:12# または #2012-10-09 09:12# のいずれかになります)。あなたの例では、ローカリゼーション設定に応じて

于 2012-10-10T11:31:03.853 に答える
0

DateAdd()#日付/時刻値を返し、db エンジンはその戻り値をそのまま使用できるため、区切り文字 を含める必要はありません。

Dateは予約語です。テーブル内のフィールドの名前として使用している場合は、db エンジンの混乱を避けるために角括弧で囲みます。

" where [Date] >= DateAdd(\"yyyy\", -1, #10/09/2012 09:12#) ORDER by [DATE] ASC;"

db エンジンは、DateAdd(). これが C++ で何かを複雑にするかどうかはわかりませんが、次のようにしてみます。

" where [Date] >= DateAdd('yyyy', -1, #10/09/2012 09:12#) ORDER by [DATE] ASC;"

Access が利用できる場合は、Access クエリ デザイナーでクエリを作成してテストし、実績のある SQL を C++ で使用する方がよいと思います。

于 2012-10-10T11:26:31.350 に答える