标签:语句 char 00 MM 08 YYYY sql now ECharts
1.处理当天数据
SELECT * FROM table_name a WHERE
a.trntime >=to_timestamp(to_char(now(),‘YYYY-MM-dd’),‘YYYY-MM-dd HH24:MI:SS’)
AND
a.trntime <=to_timestamp(to_char(now(),‘YYYY-MM-dd’),‘YYYY-MM-dd HH24:MI:SS’)+INTERVAL ‘1 day’+INTERVAL ‘-1 second’
-----------------------------------------------------------------------------------------------------
select to_timestamp(to_char(now(),‘YYYY-MM-dd’),‘YYYY-MM-dd HH24:MI:SS’)
– 结果:2021-08-09 00:00:00+08select to_timestamp(to_char(now(),‘YYYY-MM-dd’),‘YYYY-MM-dd HH24:MI:SS’)+INTERVAL ‘1 day’+INTERVAL '-1 second’
结果:2021-08-09 23:59:59+08
----------------------------------------------------------------------------------------------------
最终
SELECT * FROM table_name a WHERE to_char(a.trntime,‘YYYY-MM-dd’) = to_char(now(),‘YYYY-MM-dd’)
这是结果 :2021-08-06 00:00:00 ~ 2021-08-06 23:59:59
解释说明:
日期 + INTERVAL ‘1 day’:日期加上一天
日期 + INTERVAL ‘-1 second’:日期减去一秒
日期 + INTERVAL ‘1 month’:日期加上一月
日期 + INTERVAL ‘1 year’:日期加上一年
2.本月数据
SELECT * FROM table_name WHERE
trdtime >= to_timestamp(to_char(now(),‘YYYY-MM’),‘YYYY-MM-dd’)本月1号的时间
AND
trdtime < to_timestamp(to_char(now(),‘YYYY-MM’),‘YYYY-MM-dd’)+INTERVAL '1 month’下月1号的时间
----------------------------------------------------------------------------------------------------
**select to_timestamp(to_char(now(),‘YYYY-MM’),‘YYYY-MM-dd’)
结果:2021-08-01 00:00:00+08select to_timestamp(to_char(now(),‘YYYY-MM’),‘YYYY-MM-dd’)+INTERVAL ‘1 month’
结果:2021-09-01 00:00:00+08**
----------------------------------------------------------------------------------------------------最终:
SELECT * FROM table_name WHERE to_char(trntime,‘YYYY-MM’) = to_char(now(),‘YYYY-MM’)
这是结果:2021-08-01~ 2021-09-1
解释说明:
to_char(now(),‘YYYY-MM’):获取只包含年和月的当前日期字符串,如:'2021-08’
to_timestamp(‘2021-08’,‘YYYY-MM-dd’):将只包含年和月的字符串’2021-08’,按照年月日的格式转为日期格式 2021-08-01 00:00:00+08
3.一年内 每月对应的数量
SELECT t.monthdate,COALESCE(sb.totalCount,0) as monthamount
FROM(SELECTto_char(b,‘YYYY-MM’) AS monthdate
FROM
generate_series**(to_timestamp**(to_char(now()+INTERVAL ‘1 YEAR’,‘YYYY’),‘YYYY-MM’)- interval ‘12 month’,
to_timestamp (to_char(now()+INTERVAL ‘1 YEAR’,‘YYYY’), ‘YYYY-MM’)-INTERVAL ‘1 MONTH’, ‘1 month’) AS b)as t
LEFT JOIN(SELECTto_char(createtime,‘YYYY-MM’) AS time,sum(quantity) AS totalCount FROM table_name WHERE to_char(createtime,‘YYYY’) =to_char(now(),‘YYYY’)GROUP BYtime)AS sb
ONt.monthdate = sb.time
ORDER BY t.monthdate asc;
解释说明:生成从今年1月到12月的日期字符串临时表
SELECT
to_char(b,‘YYYY-MM’) AS monthdate
FROM
generate_series (to_timestamp(to_char(now()+INTERVAL ‘1 YEAR’,‘YYYY’),‘YYYY-MM’)- interval ‘12 month’,to_timestamp (to_char(now()+INTERVAL ‘1 YEAR’,‘YYYY’), ‘YYYY-MM’)-INTERVAL ‘1 MONTH’,‘1 month’) AS b
总结:t表生成今年12个月的日期字符串,sb表查出12个月中每个月的日期字符串及数量和,两者关联查询以后就得到了今年每个月的日期字符串及数量和;如果对应月份数量和是null,则用了 COALESCE(sb.totalCount,0) 函数将null值转为了0
使用echarts时用到的相关SQL语句总结_漂浪的博客-CSDN博客
标签:语句,char,00,MM,08,YYYY,sql,now,ECharts 来源: https://blog.csdn.net/m0_54861649/article/details/123601224
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。