lintcode-2032 · 将课程创建日期均提前一天

182 阅读2分钟

描述

请编写 SQL 语句,修改 courses 表中课程的课程创建日期,将课程创建日期均提前一天,最后返回课程 id 、课程名称 name 及修改后的开课日期,修改后的课程创建日期命名为 new_created 。

表定义: courses(课程表)

列名类型注释
idint unsigned主键
namevarchar课程名称
student_countint学生总数
created_atdate课程创建时间
teacher_idint讲师 id

**

  • 结果列名需要重命名
  • 如果查询不到创建时间,则无法修改

样例

样例一:

表内容 : courses

idnamestudent_countcreated_atteacher_id
1Advanced Algorithms8802020-6-14
2System Design13502020-7-183
3Django7802020-2-293
4Web3402020-4-224
5Big Data7002020-9-111
6Artificial Intelligence16602018-5-133
7Java P6+7802019-1-193
8Data Analysis5002019-7-121
10Object Oriented Design3002020-8-84
12Dynamic Programming20002018-8-181

在运行你的 SQL 语句之后,表应返回:

idnamenew_created
1Advanced Algorithms2020-5-31
2System Design2020-7-17
3Django2020-2-28
4Web2020-4-21
5Big Data2020-9-10
6Artificial Intelligence2018-5-12
7Java P6+2019-1-18
8Data Analysis2019-7-11
10Object Oriented Design2020-8-7
12Dynamic Programming2018-8-17

样例二:

表内容 : courses

idnamestudent_countcreated_atteacher_id
1Advanced Algorithms8802020-6-14
6Artificial Intelligence16602018-5-133
7Java P6+780null3

在运行你的 SQL 语句之后,表应返回:

idnamestudent_countcreated_atteacher_id
1Advanced Algorithms8802020-5-314
6Artificial Intelligence16602018-5-123
7Java P6+780null3

题解

使用时间增加函数 DATE_SUB DATE_SUB() 函数从日期减去指定的时间间隔。

SELECT `id`, `name`, DATE_SUB(`created_at`, INTERVAL 1 DAY) AS `new_created`
/* 从课程表中查询 */
FROM `courses`;