5

これまでの私のコードは次のとおりです。

SELECT `date`, title, category, url
FROM cute_news
WHERE category = '4'
ORDER BY `date` DESC

2010年、2009年、2008年など、年に基づいたページを作りたいです。データベースは日付を UNIX_Timestamp として保存します。Year パラメーターを使用してレコードセットをクエリする方法がわかりませんか?

WHERE unix_timestamp(YEAR) = '2010' or something???

前もって感謝します。私は困惑しています。

4

3 に答える 3

4

のようなものが必要になりますWHERE YEAR(FROM_UNIXTIME(date_field)) = 2010

于 2010-10-25T16:27:22.537 に答える
3

関数を使用できますが、列にFROM_UNIXTIME()インデックスが存在する場合、これは使用されないことに注意してください。date

... WHERE YEAR(FROM_UNIXTIME(`date`)) = 2010

クエリをsargableUNIX_TIMESTAMP()にするには、代わりに関数を使用できます。

... WHERE `date` >= UNIX_TIMESTAMP('2010-01-01 00:00:00') AND 
          `date` < UNIX_TIMESTAMP('2011-01-01 00:00:00')
于 2010-10-25T16:29:01.460 に答える
0

試す:

WHERE YEAR(FROM_UNIXTIME(`date`)) = 2010;
于 2010-10-25T16:28:36.177 に答える