- 小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
描述
请编写 SQL 语句,修改 courses 表中课程的课程创建日期,将课程创建日期均提前一天,最后返回课程 id 、课程名称 name 及修改后的开课日期,修改后的课程创建日期命名为 new_created 。
表定义: courses(课程表)
| 列名 | 类型 | 注释 |
|---|---|---|
| id | int unsigned | 主键 |
| name | varchar | 课程名称 |
| student_count | int | 学生总数 |
| created_at | date | 课程创建时间 |
| teacher_id | int | 讲师 id |
**
- 结果列名需要重命名
- 如果查询不到创建时间,则无法修改
样例
样例一:
表内容 : courses
| id | name | student_count | created_at | teacher_id |
|---|---|---|---|---|
| 1 | Advanced Algorithms | 880 | 2020-6-1 | 4 |
| 2 | System Design | 1350 | 2020-7-18 | 3 |
| 3 | Django | 780 | 2020-2-29 | 3 |
| 4 | Web | 340 | 2020-4-22 | 4 |
| 5 | Big Data | 700 | 2020-9-11 | 1 |
| 6 | Artificial Intelligence | 1660 | 2018-5-13 | 3 |
| 7 | Java P6+ | 780 | 2019-1-19 | 3 |
| 8 | Data Analysis | 500 | 2019-7-12 | 1 |
| 10 | Object Oriented Design | 300 | 2020-8-8 | 4 |
| 12 | Dynamic Programming | 2000 | 2018-8-18 | 1 |
在运行你的 SQL 语句之后,表应返回:
| id | name | new_created |
|---|---|---|
| 1 | Advanced Algorithms | 2020-5-31 |
| 2 | System Design | 2020-7-17 |
| 3 | Django | 2020-2-28 |
| 4 | Web | 2020-4-21 |
| 5 | Big Data | 2020-9-10 |
| 6 | Artificial Intelligence | 2018-5-12 |
| 7 | Java P6+ | 2019-1-18 |
| 8 | Data Analysis | 2019-7-11 |
| 10 | Object Oriented Design | 2020-8-7 |
| 12 | Dynamic Programming | 2018-8-17 |
样例二:
表内容 : courses
| id | name | student_count | created_at | teacher_id |
|---|---|---|---|---|
| 1 | Advanced Algorithms | 880 | 2020-6-1 | 4 |
| 6 | Artificial Intelligence | 1660 | 2018-5-13 | 3 |
| 7 | Java P6+ | 780 | null | 3 |
在运行你的 SQL 语句之后,表应返回:
| id | name | student_count | created_at | teacher_id |
|---|---|---|---|---|
| 1 | Advanced Algorithms | 880 | 2020-5-31 | 4 |
| 6 | Artificial Intelligence | 1660 | 2018-5-12 | 3 |
| 7 | Java P6+ | 780 | null | 3 |
题解
使用时间增加函数 DATE_SUB DATE_SUB() 函数从日期减去指定的时间间隔。
SELECT `id`, `name`, DATE_SUB(`created_at`, INTERVAL 1 DAY) AS `new_created`
/* 从课程表中查询 */
FROM `courses`;