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)
不记得最后一个问题是否只与GROUP
ings 相关:S
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)