2017-07-28 57 views
0

我使用此代碼date > timestampadd(year, -10, NOW())可以返回小於10年的數據。從年初開始獲取年齡小於10歲的行

我需要2007 1月1日,而不是 7月28日(10年前從NOW())

希望這樣的事情date > timestampadd(year, -10, YEAR(NOW()))會的工作,但事實並非如此。

我該如何做到這一點?

回答

1

只需創建需要使用STR_TO_DATE()任何日期:

YEAR(now)會給你一年。

Sql DEMO

然後,只需建立它想:

SELECT STR_TO_DATE(concat(YEAR(now()), '/01/01'), "%Y/%m/%d") 
+0

爲什麼它的時候'date_trunc()'正是這麼做的過度複雜化? – Trojan404

+0

我想說它不夠通用,但那只是我。在這種狀態下,您仍然需要手動輸入/ 01/01。使用date_trunc,您可以指定爲特定的,然後其他所有內容默認爲0或1. – Trojan404

+0

如果您需要本月15號,則不需要使用date_trunc。你可以使用'datediff()',因爲你不需要切掉部分日期。 – Trojan404