2016-07-13 112 views
-1

我們有兩個名爲A和B的表。這兩個表包含一個公共字段,即DOB。在表A它填充爲01/11/2011(MM/DD/YYYY)和表B它填充爲11/01/2011(DD/MM/YYYY)我需要SQL查詢來比較這兩個表中的字段並獲取此值。SQL - >比較兩個表中的日期字段

+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

關係數據庫中的日期以內部格式存儲。因此,我必須假設您的表格將日期存儲爲字符串或數字。首先要做的是解決這個問題。使用本機格式是有利的 - 這就是它們存在的原因。

如果我假設字符串,你可以使用字符串操作來解決這個問題。雖然功能可能數據庫中不同,這個想法是一樣的:

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 

因爲所有的功能,SQL引擎將無法採取指數的優勢。回到我的第一條建議,並將日期存儲爲適合您的數據庫的date類型。