【问题标题】:Display all employees where employees hired before 21-NOV-1989 (1989-11-21) in MySQL在 MySQL 中显示 1989 年 11 月 21 日(1989 年 11 月 21 日)之前雇用的所有员工
【发布时间】:2021-02-10 11:41:57
【问题描述】:

我的数据库中有一个名为“employee”的表和“hire_date”列。我试图触发以下查询,但得到了空集:

mysql> SELECT * from employees
    -> WHERE hire_date < 1989-11-21;

       Empty set, 1 warning (0.00 sec)

虽然我的hire_date 记录在 1989 年 11 月 21 日之前。谁能帮帮我?

【问题讨论】:

  • 您需要将1989-11-21 括在单引号中。所以它将是'1989-11-21'
  • 是的:1989 减 11 减 21 就是 1957

标签: mysql database date mysql-workbench rdbms


【解决方案1】:

MySQL 中的日期文字通常需要单引号,因此请使用:

SELECT *
FROM employees
WHERE hire_date < '1989-11-21';

请注意,这假定您的 hire_date 列实际上是日期或日期时间,或者,如果是文本,则假定您以 YYYY-MM-DD 格式存储文本日期。

【讨论】:

  • 非常感谢您的帮助! hire_date 具有“日期”数据类型。你的建议也适用吗?
  • 它适用于日期或日期时间。但请记住,如果 hire_date 是日期时间,则上述查询将排除整个日期 21-NOV
  • 好吧!
猜你喜欢
  • 2020-03-17
  • 2013-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
  • 1970-01-01
  • 2020-06-05
相关资源
最近更新 更多