Postgresql合并年月日、月份和日期左侧补零

在写一个统计查询的 SQL 语句时,需要根据年、月、日分组,但要求返回的字段是日期格式:yyyy年MM月dd日。刚开始我的做法是返回年、月、日,然后再手动拼接年月日,而且还要判断月份和日期是否为个位数,是的话需要在左侧补零。项目经理看了我代码之后,告诉我直接可以在 SQL 中处理。下面是 SQL 语句:

SELECT CAST(stats_year AS character varying) || ‘年‘ || lpad(CAST(stats_month AS character varying), 2, ‘0‘) || ‘月‘ || lpad(CAST(stats_day AS character varying), 2, ‘0‘) || ‘日‘ AS statisticsTime,
SUM(stats_value) AS count, ‘周‘ AS mode
FROM t_cnitsec_attack_stats_hour
WHERE stats_name=#{statsName} AND stats_date BETWEEN (now() - INTERVAL ‘12 months‘) AND now()
GROUP BY statisticsTime

原文地址:https://www.cnblogs.com/devywb/p/8671039.html

时间: 2024-10-28 00:05:59

Postgresql合并年月日、月份和日期左侧补零的相关文章

日期月和日补零

/** * 将元数据前补零,补后的总长度为指定的长度,以字符串的形式返回 * @param sourceDate * @param formatLength * @return 重组后的数据 */ public String frontCompWithZore(int sourceDate,int formatLength) { /* * 0 指前面补充零 * formatLength 字符总长度为 formatLength * d 代表为正数. */ String newString = St

关于用sql语句实现一串数字位数不足在左侧补0的技巧

在日常使用sql做查询插入操作时,我们通常会用到用sql查询一串编号,这串编号由数字组成.为了统一美观,我们记录编号时,统一指定位数,不足的位数我们在其左侧补0.如编号66,我们指定位数为5,则保存数据应为00066.这样的操作在sql中应当怎样实现呢? 首先给出查询语句:RIGHT('0000'+CAST( '123'  AS nvarchar(50)),4) 语句解释:公式 RIGHT('位数'+CAST(要判断的字段 AS nvarchar(50)),位数 ) PS:以上查询语句是放在se

输入年份,月份,日期计算该日期是一年中的第几天//雪碧和可乐temp

输入一个整数day代表星期几,根据day的值输出对应的星期几,比如day==1,就输出"星期一"(用两种方式实现) int day; printf("请输入1~7的数字"); scanf("%d",&day); if(day>0&&day<8) { //多重if...else if条件分支实现 if(day==1){ printf("星期一"); }else if(day==2){ prin

js 日期计算星座 根据生日的月份和日期,一行代码计算星座的js小函数(转)

本博客根据 开源中国作者清风徐不来 的文章 根据生日的月份和日期,一行代码计算星座的js小函数(转) 原文出自CSDN 无心的专栏 的文章,知识产权归原文作者所有! 点击查看原文:js 日期计算星座

根据生日的月份和日期,一行代码计算星座的js小函数(转)

看到了别人写的一个计算星座的js,冗长的有点儿看不过去,就自己写个了.我想,这个函数应该足够精简了:)什么 if 啊 switch 啊 for 啊 通通滚蛋了--传入参数:month [int] 1-12;  day [int] 1-31. // 根据生日的月份和日期,计算星座. http://blog.csdn.net/cuixiping/ function getAstro(month,day){        var s="魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯";

easyUI日期控件只选择月份和日期

最近的工作中,有块业务要求只选择月份和日期,翻遍了easyUI的API和网络资料也没找到方法,网上几乎都是只要年份或者年月,没有我需要的场景.遂自己琢磨了下,最终成功只选择月份和日期,过滤掉了年份. 我想要的是这样的↓ 我修改后的效果是这样的↓ 现分享代码如下: 1 $("#"+param).datebox({ 2 showSeconds: false, 3 required:true, 4 onShowPanel: function () {// 隐藏年的选择 5 $(".

补零与离散傅里叶变换的分辨率

离散傅里叶变换(DFT)的输入是一组离散的值,输出同样是一组离散的值.在输入信号而言,相邻两个采样点的间隔为采样时间Ts.在输出信号而言,相邻两个采样点的间隔为频率分辨率fs/N,其中fs为采样频率,其大小等于1/Ts,N为输入信号的采样点数.这也就是说,DFT的频域分辨率不仅与采样频率有关,也与信号的采样点数有关.那么,如果保持输入信号长度不变,但却对输入信号进行补零,增加DFT的点数,此时的分辨率是变还是不变? 答案是此时分辨率不变.从时域来看,假定要把频率相差很小的两个信号区分开来,直观上

浅谈Java中的补零扩展和补符号位扩展

今天,魏屌出了一道题,题目如下: 定义一个大头序的byte[]a={-1,-2,-3,-4},转换成short[]b.问b[0]和b[1]分别是多少? 乍一看,这题不难,无非就是移位操作,再进行组合.但是呢?对于用Java的童鞋来说,这里面有一个坑,稍不注意可能就踩进去了.在说之前,我先把代码和答案贴出来吧. 看到这里,可能有的童鞋比较奇怪,为啥要&0xff,这不相当于没变化吗?非也,不信我举个例子. 答案是-127和129.很奇怪不是吗?我想的明明都是-127啊!!! 解答这个问题之前,我们先

补零补零

var _ = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09'], //补零 d = new Date(), h = d.getHours(), m = d.getMinutes(), s = d.getSeconds(); return [_[h] || h, _[m] || m, _[s] || s].join(":"); ====== 1,this[监听器的对象]2,event.target[当前目标对象]&