sql怎么取昨天和今天的值
时间: 2023-11-27 09:53:55 浏览: 105
可以使用SQL中的日期函数来筛选出昨天和今天的值。
假设你的数据表中有一个`date`字段表示日期,可以使用以下代码来筛选出昨天和今天的数据:
```sql
SELECT *
FROM your_table
WHERE date >= DATE(NOW()) - INTERVAL 1 DAY
AND date < DATE(NOW()) + INTERVAL 1 DAY;
```
其中,`DATE(NOW())`获取当前日期,`INTERVAL 1 DAY`表示增加/减少一天,因此`DATE(NOW()) - INTERVAL 1 DAY`表示昨天的日期,`DATE(NOW()) + INTERVAL 1 DAY`表示明天的日期(注意这里是“小于”而不是“小于等于”,避免漏选今天的数据)。
相关问题
sql 取上个月的今天
在SQL中,获取上个月的同一天通常需要涉及到日期函数和条件判断。如果你使用的是MySQL,可以使用`CURDATE()`和`LAST_DAY()`函数来获取昨天的日期,然后减去1天得到上个月的同一天。示例如下:
```sql
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS 'LastMonthToday'
```
这里,`DATE_SUB()`函数用于从当前日期中减去指定的时间间隔,`INTERVAL 1 DAY`表示减去一天。
如果你使用的是Oracle或其他数据库,语法可能会稍有差异。例如,在Oracle中,可以这样做:
```sql
SELECT TRUNC(SYSDATE, 'MONTH') - INTERVAL '1' DAY AS 'LastMonthToday'
```
这里的`TRUNC()`函数用于截断日期到月份,`INTERVAL '1' DAY`同样表示减去一天。
请注意,具体的查询取决于你的数据库管理系统。如果你告诉我你在使用的数据库类型,我可以提供更精确的示例。
SQL 计算今天和昨天粉丝数的涨幅
假设有一个 `fans` 表,其中包含用户 `user_id`、粉丝数 `fans_count` 和日期 `date` 三个字段,可以使用以下 SQL 语句计算每个用户昨天和今天粉丝数的涨幅:
```
SELECT
user_id,
fans_count_today,
fans_count_yesterday,
(fans_count_today - fans_count_yesterday) / fans_count_yesterday * 100 AS fans_increase
FROM
(
SELECT
user_id,
MAX(CASE WHEN date = DATE(NOW()) THEN fans_count END) AS fans_count_today,
MAX(CASE WHEN date = DATE(NOW()) - INTERVAL 1 DAY THEN fans_count END) AS fans_count_yesterday
FROM
fans
WHERE
date >= DATE(NOW()) - INTERVAL 1 DAY
GROUP BY
user_id
) AS t
```
其中,内部的子查询按照 `user_id` 分组,使用 `MAX` 函数选择出今天和昨天的粉丝数。最后,外部的查询计算出粉丝数的涨幅。需要注意的是,这个查询只会返回有数据的用户,如果要包含所有用户,可以使用 `LEFT JOIN` 和 `COALESCE` 函数。