我有一個問題,我在表X中有一個出生年份屬性(格式爲:yyyy)以及表Y中的出生日期屬性(不同格式:dd-mm-yyyy )。加入兩種不同格式的變量
它們都是varchar()類型屬性。我想要在這些屬性上加入這些表格。例如,我想選擇在同一年出生的所有人的姓名。我怎樣才能做到這一點?
我有一個問題,我在表X中有一個出生年份屬性(格式爲:yyyy)以及表Y中的出生日期屬性(不同格式:dd-mm-yyyy )。加入兩種不同格式的變量
它們都是varchar()類型屬性。我想要在這些屬性上加入這些表格。例如,我想選擇在同一年出生的所有人的姓名。我怎樣才能做到這一點?
(更新)假設日期的出生屬性始終具有的最後四個字符爲一年,嘗試:
select...
from X
join Y on X.year_of_birth = substr(Y.date_of_birth, length(Y.date_of_birth)-3,4)
SQLFiddle here。
還有一個問題,那就是01天被截斷到第1天。幾個月的行爲也是如此。 – jakeehoffmann 2013-04-10 17:25:05
@jakeehoffmann:查看更新後的答案。 – 2013-04-10 17:30:09
嘗試使用DATE_FORMAT()
JOIN table2 ON DATE_FORMAT(table1.bday, "%Y") = DATE_FORMAT(table2.bday, "%Y")
DATE_FORMAT不是SQLite函數。 – 2013-04-10 17:37:32
在什麼表中的人的名字?在我看來,你不需要兩張表來做到這一點。 – Jerry 2013-04-10 17:16:21
您正在使用哪種RDBMS(Oracle,MySQL,SQLServer等)?字符串和日期函數/運算符在RDBMS之間有所不同。 – 2013-04-10 17:17:35
@Mark我正在使用SQLite。 – jakeehoffmann 2013-04-10 17:18:49