1

我必须得到那些生日不等于给定日期的用户记录。由于 的日期格式birthday"Y-d-m"我的数据库中,首先我需要将其转换为"d-m"格式。之后选择此字段。我使用类似的查询:

SELECT *, DATE_FORMAT(birthday, '%d-%m') AS birthday_date
FROM users
WHERE birthday_date = '03-06'

但它返回未知列错误:

Unknown column 'birthday_date' in 'where clause'

那么我该如何解决这个问题呢?

提前致谢。

4

2 回答 2

3

你需要使用有:)

SELECT *, DATE_FORMAT(birthday, '%d-%m') AS birthday_date
FROM users
HAVING DATE_FORMAT(birthday, '%d-%m') = '03-06'

或者

SELECT * FROM(
    SELECT *, DATE_FORMAT(birthday, '%d-%m') AS birthday_date
    FROM users
) a
WHERE a.birthday_date = '03-06'
于 2012-06-03T13:34:46.537 回答
1

尝试以下操作:

SELECT * FROM
(
  SELECT *, DATE_FORMAT(birthday, '%d-%m') AS birthday_date
  FROM users
)
WHERE birthday_date = '03-06'

您不能在 where 子句中使用别名

于 2012-06-03T13:36:27.450 回答