2013-04-10 57 views
1

我有一個問題,我在表X中有一個出生年份屬性(格式爲:yyyy)以及表Y中的出生日期屬性(不同格式:dd-mm-yyyy )。加入兩種不同格式的變量

它們都是varchar()類型屬性。我想要在這些屬性上加入這些表格。例如,我想選擇在同一年出生的所有人的姓名。我怎樣才能做到這一點?

+1

在什麼表中的人的名字?在我看來,你不需要兩張表來做到這一點。 – Jerry 2013-04-10 17:16:21

+1

您正在使用哪種RDBMS(Oracle,MySQL,SQLServer等)?字符串和日期函數/運算符在RDBMS之間有所不同。 – 2013-04-10 17:17:35

+0

@Mark我正在使用SQLite。 – jakeehoffmann 2013-04-10 17:18:49

回答

0

(更新)假設日期的出生屬性始終具有的最後四個字符爲一年,嘗試:

select... 
from X 
join Y on X.year_of_birth = substr(Y.date_of_birth, length(Y.date_of_birth)-3,4) 

SQLFiddle here

+0

還有一個問題,那就是01天被截斷到第1天。幾個月的行爲也是如此。 – jakeehoffmann 2013-04-10 17:25:05

+0

@jakeehoffmann:查看更新後的答案。 – 2013-04-10 17:30:09

0

嘗試使用DATE_FORMAT()

JOIN table2 ON DATE_FORMAT(table1.bday, "%Y") = DATE_FORMAT(table2.bday, "%Y") 
+0

DATE_FORMAT不是SQLite函數。 – 2013-04-10 17:37:32