mysql - 如何比较mysql中case语句中的日期
问题描述
我想比较日期数据,然后指定一个新名称,这是我的查询
SELECT EMPLOYEE_ID,FIRST_NAME,HIRE_DATE
CASE
WHEN HIRE_DATE < DATE('1987-09-01')THEN 'JUNIOR'
WHEN HIRE_DATE BETWEEN DATE('1987-05-01') AND DATE('1987-08-31') THEN 'MID LEVEL SENIOR'
WHEN HIRE_DATE > DATE('1987-05-01') THEN 'SENIOR'
END AS 'experience_level'
FROM employees;
发生了一些错误。我的问题是什么?
SQL query: Documentation
SELECT EMPLOYEE_ID,FIRST_NAME,HIRE_DATE
CASE
WHEN HIRE_DATE < DATE('1987-09-01')THEN 'JUNIOR'
WHEN HIRE_DATE BETWEEN DATE('1987-05-01') AND DATE('1987-08-31') THEN 'MID LEVEL SENIOR'
WHEN HIRE_DATE > DATE('1987-05-01') THEN 'SENIOR'
END AS 'experience_level'
FROM employees LIMIT 0, 25
MySQL said: Documentation
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 'CASE WHEN HIRE_DATE < DATE('1987-09-01')THEN 'JUNIOR' WHEN HIRE_DATE BETWEEN D' 附近使用正确的语法
解决方案
您在“HIRE_DATE”之后缺少“,”。即你的查询应该是这样的:
SELECT EMPLOYEE_ID,FIRST_NAME,HIRE_DATE,
CASE
WHEN HIRE_DATE < DATE('1987-09-01')THEN 'JUNIOR'
WHEN HIRE_DATE BETWEEN DATE('1987-05-01') AND DATE('1987-08-31') THEN 'MID LEVEL SENIOR'
WHEN HIRE_DATE > DATE('1987-05-01') THEN 'SENIOR'
END AS 'experience_level'
FROM employees;
推荐阅读
- laravel-5 - 在 Laravel 中编写 SQL 查询
- oracle - 最有效地使用 NOT regexp_like
- reactjs - 打字稿中的 react-use-gesture 基本示例给出类型错误
- c++ - 具有多个 OR 的 Xpath 查询不适用于 Windows 事件
- matlab - 3D 中的 MATLAB 曲线拟合,带有附加边界
- python - 我可以在多列上加快 groupby 速度,然后用 1 个句点进行 diff 吗?
- visual-studio-code - VsCode Remote SSH .vscode-server 占用大量空间
- jenkins-pipeline - Gradle --no-daemon 启动守护进程?
- c# - 如何使用 .NET 反射检查可为空的引用类型
- php - 正则表达式 php 从不同组中的字符串中分离出一个确切的单词