Mysql - 从unix时间戳中选择年份

Sam*_*Sam 15 mysql select timestamp

我用这个:

SELECT FROM_UNIXTIME(my_unix_timestamp_column, '%Y') AS year FROM table_name WHERE year = 2009;
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误:

Unknown column 'year' in 'where clause'SELECT FROM_UNIXTIME(my_unix_timestamp_column, '%Y') AS year FROM table_name WHERE year = 2009
Run Code Online (Sandbox Code Playgroud)

"my_unix_timestamp_column"和"table_name"都是正确的,我不知道为什么它给了我这个!!!

我使用的是PHP 5.3.0

jen*_*ram 25

我不太确定这是因为YEAR在MySQL中是一个保留字还是因为它希望你做一些事情:

SELECT
  FROM_UNIXTIME(my_unix_timestamp_column, '%Y') AS year
FROM
  table_name
WHERE
  FROM_UNIXTIME(my_unix_timestamp_column, '%Y') = 2009;
Run Code Online (Sandbox Code Playgroud)

不记得最后一个问题是否只与GROUPings 相关:S


Qua*_*noi 5

SELECT  FROM_UNIXTIME(my_unix_timestamp_column, '%Y') AS `year`
FROM    table_name
HAVING  `year` = 2009
Run Code Online (Sandbox Code Playgroud)

WHERE子句不同,HAVING子句可以引用SELECT子句别名。

更有效的索引方法是:

SELECT  FROM_UNIXTIME(my_unix_timestamp_column, '%Y') AS `year`
FROM    table_name
WHERE   my_unix_timestamp_column >= UNIX_TIMESTAMP('2009-01-01')
        AND my_unix_timestamp_column < UNIX_TIMESTAMP('2010-01-01')
Run Code Online (Sandbox Code Playgroud)