doris用sql输出,如果当前时间是当天开始的前5分钟,那么输出昨天0点时间戳,反之输出今日0点时间戳
时间: 2024-10-24 07:08:09 浏览: 26
CDH6.3.2安装包全+Flink+Doris2.0 都是CDH适配的,采用阿里网盘的方式
Doris 使用 SQL 输出日期时间可以结合 `CURRENT_TIMESTAMP` 和一些算术运算来实现这个需求。假设有一个字段名为 `datetime_column` 存储的是日期时间类型的数据,你可以编写如下的查询:
```sql
WITH start_of_day AS (
SELECT
CASE
WHEN DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d') = DATE_FORMAT(NOW() - INTERVAL 5 MINUTE, '%Y-%m-%d') THEN 'yesterday'
ELSE 'today'
END AS date_type,
DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 5 MINUTE) AS five_minutes_ago
)
SELECT
CASE
WHEN date_type = 'yesterday' THEN UNIX_TIMESTAMP(DATE_SUB(five_minutes_ago, INTERVAL 1 DAY))
ELSE UNIX_TIMESTAMP(five_minutes_ago)
END AS timestamp
FROM
start_of_day;
```
这段 SQL 先判断当前时间和5分钟前的时间是否属于同一天,然后根据结果选择返回昨天0点(前一天的最后一个完整小时)或者今天0点的时间戳。`UNIX_TIMESTAMP` 函数用于将日期时间转换为Unix时间戳。
阅读全文