2016-07-13 12 views
-1

AとBの2つのテーブルがあります。これら2つのテーブルには共通フィールドが1つ含まれています。つまりDOBです。表Aでは、それは01/11/2011(MM/DD/YYYY)と表Bに入力されています。11/01/2011(DD/MM/YYYY)このフィールドをテーブルの両方で比較し、この値を取得するにはSQLクエリが必要です。SQL - > 2つのテーブルの日付フィールドを比較する

+2

(1)使用しているデータベースで質問にタグを付けてください。 (2)列のデータ型を指定します。 –

+0

あなたの列のタイプは何ですか? – rlanvin

+1

もちろん、あなたが試みたSQLを投稿してください。あなたは何らかの努力を払ってくれば、あなたはより親切な反応を得るでしょう – sstan

答えて

0

何かのようなもの?

SELECT 
    A.DOB, 
    A.DateTimeField - B.DateTimeField Difference 
FROM 
    TableA A 
JOIN 
    TableB B ON A.DOB = B.DOB 
1

日付は、リレーショナルデータベースでは、内部形式で格納されます。したがって、私はあなたのテーブルが文字列または数字として日付を格納していると仮定する必要があります。まず、この問題を解決することです。ネイティブフォーマットを使用することは有利です。それが存在する理由です。

文字列を想定すると、文字列操作を使用してこの問題を解決できます。関数は、データベース間で異なる場合がありますが、考え方は同じである:すべての機能のうち、SQLエンジンがインデックスを利用することができません

from a join 
    b 
    on right(a.dob, 4) = right(b.dob, 4) and  -- compare years 
     left(a.dob, 2) = substring(b.dob, 3, 2) and -- compare months 
     substring(a.dob, 3, 2) = left(b.dob, 2)  -- compare days 

ので。私の最初のアドバイスに戻り、あなたのデータベースの適切なdateタイプとして日付を保管してください。

関連する問題