2013-02-20 32 views
0

我表「用戶」有這樣一行:要在SQL列使用數學,但它不是一個INT

id = 1; 
birthdate(date) = 1992-02-12; 
joined(int) = 2000; 

我想創造這樣的事情:

SELECT 
    CAST(birthdate as INT(4)) as birthyear, joined 
FROM 
    users 
WHERE 
    (birthyear - joined >= 20) 

燦任何人給我一個提示/提示?提前致謝。

回答

2

我想你想要的功能year()

select year(birthdate) as birthyear, joined 
from users 
where year(birthdate) - joined >= 20 
+0

謝謝!有用。不知道SQL有YEAR()函數。我剛剛解決的另一個問題是我正在使用postgreSQL。它們沒有YEAR()函數,但它們使用:EXTRACT(YEAR FROM DATE)。再次感謝! – Mossawi 2013-02-20 20:26:42

+0

@Mossawi。 。 。你的問題被標記爲MySQL。許多數據庫支持'year()'。 '提取(年初至今)'是標準,但我認爲它是由更少的數據庫支持的。 – 2013-02-20 20:41:41

+0

我不知道postgreSQL不支持YEAR()。再次感謝 (: – Mossawi 2013-02-20 20:46:27

1

可以使用YEAR()函數來獲取年份值。然後讓你願意,你可以使用類似下面的結果:

select year(birthdate), joined 
from users 
where (joined - year(birthdate)) >= 20 

SQL Fiddle with Demo

相關問題