||trunc_day||
时间: 2024-01-29 17:03:04 浏览: 161
trunc_day函数是一个日期函数,用于将给定日期截断到指定的天数。它的语法如下:
```
date_trunc('day', source)
```
其中,source是要截断的日期。
以下是一个示例:
```sql
SELECT date_trunc('day', '2021-11-15'::date);
```
这将返回截断到天的日期,即'2021-11-15 00:00:00'。
相关问题
SELECT * FROM your_table WHERE (your_time_column >= time '17:00' OR your_time_column < time '01:30') AND date_trunc('day', your_date_column) >= date_trunc('day', current_date - interval '1 day') + interval '17 hours' AND date_trunc('day', your_date_column) <= date_trunc('day', current_date) + interval '1 day' + interval '1 hour' + interval '30 minutes';
这是之前提供的查询代码,用于在 PostgreSQL 中筛选出从当天的17:00到次日的01:30分之间的数据:
```sql
SELECT *
FROM your_table
WHERE (your_time_column >= time '17:00' OR your_time_column < time '01:30')
AND date_trunc('day', your_date_column) >= date_trunc('day', current_date - interval '1 day') + interval '17 hours'
AND date_trunc('day', your_date_column) <= date_trunc('day', current_date) + interval '1 day' + interval '1 hour' + interval '30 minutes';
```
请确保将 `your_table` 替换为你要查询的表名,`your_time_column` 替换为包含时间的列名,`your_date_column` 替换为包含日期的列名。
该查询使用了三个条件来筛选数据:
1. `(your_time_column >= time '17:00' OR your_time_column < time '01:30')` 条件筛选出时间在17:00到次日01:30之间的数据。
2. `date_trunc('day', your_date_column) >= date_trunc('day', current_date - interval '1 day') + interval '17 hours'` 和 `date_trunc('day', your_date_column) <= date_trunc('day', current_date) + interval '1 day' + interval '1 hour' + interval '30 minutes'` 条件用于确保日期在正确的范围内。
- 第一个条件 `date_trunc('day', your_date_column) >= date_trunc('day', current_date - interval '1 day') + interval '17 hours'` 筛选出日期晚于或等于前一天加上17小时的数据。
- 第二个条件 `date_trunc('day', your_date_column) <= date_trunc('day', current_date) + interval '1 day' + interval '1 hour' + interval '30 minutes'` 筛选出日期早于或等于当天加上1天1小时30分钟的数据。
希望这次能够正确地查询出符合条件的数据。如果还有其他问题,请随时提问。
SELECT b.city AS administrativeDivision, isnull(sum(case when a.enterprise_level=0 then 1 else 0 end),0) as excellent, isnull(sum(case when a.enterprise_level=1 then 1 else 0 end),0) as good, isnull(sum(case when a.enterprise_level=2 then 1 else 0 end),0) as average, isnull(sum(case when a.enterprise_level=3 then 1 else 0 end),0) as poor, COUNT(a.ID) AS enterprises_total FROM ALL_SAFE.t_enterprise_effect a,ALL_SAFE.T_ENTERPRISE_INFO b WHERE a.enterprise_code = b.enter_code and a.end_time >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6) AND a.end_time < TRUNC(NEXT_DAY(SYSDATE-8,1)+1) AND (b.city != '') group by b.city
这是另一个SQL查询语句,用于统计企业级别在指定时间范围内的数量,并按城市进行分组。
查询结果包括行政区划(使用b.city字段作为别名)、优秀企业数量、良好企业数量、一般企业数量、差劣企业数量和总企业数量。
查询条件包括企业编码与企业信息表中的企业编码匹配,以及结束时间在指定范围内的条件。还有一个额外的条件是城市不为空。
最后,使用GROUP BY语句按城市进行分组,以获取每个城市的统计结果。
请注意,这个查询语句也使用了动态SQL的写法,并使用了SUM和CASE语句来计算不同企业级别的数量。
阅读全文