2009-06-25 17 views
1

まず、Paradox初心者です。
第2に、サードパーティのソフトウェアパッケージのデータベースにクエリを実行していて、スキーマを変更できません。Paradox:Date列を照会する+ DateTimeとしてTime列を返す

"Date"と "Time"という2つのフィールドには、私のMS SQLエクスペリエンスのDateTimeとしてクエリしたいフィールドがあります。

これは可能ですか?

私はいくつかのクエリを試してみましたが、コマンドが有効な場合、「データ型が条件式に一致しません」というメッセージが表示されます。

また、これはParadoxデータベースのもので、1999-2000年頃のものであれば違いがあります。

編集:フィールドの単純な文字列の連結でさえ、私はコードでそれを扱うことができたので大きな助けになります。

編集:a.i.breveleriの答えに応じて。 CAST([1 - CAST 」クエリ式に( オペレータが欠け)(TIMESTAMP AS m.DateComplete)

ERROR [42000] [Microsoft]の[ODBCパラドックス ドライバー]構文エラー:私はこのメッセージが表示されます/ 1/3000] AS TIMESTAMP)+ CAST(m.TimeComplete AS TIMESTAMP) 'となります。

私はこのクエリを実行すると:

select distinct 
    CAST(m.DateComplete AS TIMESTAMP) - 
    CAST("1/1/3000" AS TIMESTAMP) + 
    CAST(m.TimeComplete AS TIMESTAMP) 
from Mean m 
+0

QBEクエリまたはSQLクエリを作成していますか? 「日付」列と「時刻」列のParadoxデータ型は何ですか? -Al。 –

+0

SQLクエリ。データ型に関する私の推測は「日付」は日付列、「時刻」は文字列です。 –

+1

非常に密集して申し訳ありませんが、Paradox for Windowsを使用してデータにアクセスしていますか?そうでない場合、どのようにParadoxデータベースに接続していますか?他のSOの話題は、このようなクエリがODBCドライバの選択に敏感であることを示しています。 -Al。 –

答えて

1
SELECT CAST(f.DateColumn AS VARCHAR(20)) + ' ' + CAST(f.TimeColumn AS VARCHAR(20)) 
FROM Foo f 

あなたに連結された文字列を与えます。

SELECT CAST(CAST(f.DateColumn AS VARCHAR(20)) + ' ' + CAST(f.TimeColumn AS VARCHAR(20)) AS TIMESTAMP) As FooTime 
FROM Foo f 

は合計時間を示します。

+0

"...、cast(Date as varchar(20))..."を実行すると "missing operator"エラーが発生する –

+0

日付は予約語なので、二重引用符を付けることができます。 –

1

QBE照会:

Query 
ANSWER: :PRIV:ANSWER.DB 

test.db | Date | Time       | 
     | _x | _y, calc _x+_y as "DateTime" | 

EndQuery 

SQLクエリ:

SELECT DISTINCT 
    CAST(D0."Date" AS TIMESTAMP) - 
    CAST("1/1/3000" AS TIMESTAMP) + 
    CAST(D0."Time" AS TIMESTAMP) 
FROM 
    "test.db" D0 

-Al。

+0

MS ODBCドライバでSQLクエリを使用すると、構文エラーが発生します。私は私の質問を更新しました。 –

+0

Microsoft ODBC Desktop Database Driver(おそらくODBCJT32.DLL)が「1/1/3000」を[1/1/3000]に変更しているようです。一重引用符 '1/1/3000'を使用してみてください。または、代替ドライバーのDataDirect Technologies(旧Merant、INTERSOLV ODBCドライバーの製造元)を確認することもできます。 -Al。 –

関連する問題