各种数据库的时间拆分的语法

MySQL的时间拆分

MySQL的时间拆分的是使用MySQL自带的函数“date_format”来完成的
这里我们举个例子,示例数据如下图所示:
这里写图片描述

这里我们利用字段“订单日期”作为时间拆分的字段:
date_format的语法的用法就是:

DATE_FORMAT(date,format),根据format字符串格式化date值。
下列修饰符可以被用在format字符串中: 
%M 月的英文名字(January……December) 
%W 星期名字(Sunday……Saturday) 
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) 
%Y 年, 数字, 4 位 
%y 年, 数字, 2 位 
%a 缩写的星期名字(Sun……Sat) 
%d 月份中的天数, 数字(00……31) 
%e 月份中的天数, 数字(0……31) 
%m 月, 数字(01……12) 
%c 月, 数字(1……12) 
%b 缩写的月份名字(Jan……Dec) 
%j 一年中的天数(001……366) 
%H 小时(00……23) 
%k 小时(0……23) 
%h 小时(01……12) 
%I 小时(01……12) 
%l 小时(1……12) 
%i 分钟, 数字(00……59) 
%r 时间,12 小时(hh:mm:ss [AP]M) 
%T 时间,24 小时(hh:mm:ss) 
%S 秒(00……59) 
%s 秒(00……59) 
%p AM或PM 
%w 一个星期中的天数(0=Sunday ……6=Saturday ) 
%U 星期(0……52), 这里星期天是星期的第一天 
%u 星期(0……52), 这里星期一是星期的第一天 
%% 一个文字“%”。

以下是MySQL时间拆分的语句示例,增加了增加了group by的语法才能够选出所有的年份:

年:SELECT DATE_FORMAT(orders2.`订单日期`, '%Y') AS years,SUM(orders2.`销售额`) FROM orders2 GROUP BY years
年-季度:SELECT concat(DATE_FORMAT(orders2.`订单日期`, '%Y'), '年 ', FLOOR((DATE_FORMAT(orders2.`订单日期`, '%m')+2)/3), '季度') as year_season, SUM(orders2.`销售额`) FROM orders2 GROUP BY year_season
年-月:SELECT DATE_FORMAT(orders2.`订单日期`, '%Y-%m') as years_months ,SUM(orders2.`销售额`) FROM orders2 GROUP BY years_months
年-月-日:SELECT DATE_FORMAT(orders2.`订单日期`, '%Y-%m-%d') as years_months_days ,SUM(orders2.`销售额`) FROM orders2 GROUP BY years_months_days
年-月-日 时:%Y-%m-%d %H
年-月-日 时:分:秒 :%Y-%m-%d %H:%i:%s
季度:SELECT FLOOR((DATE_FORMAT(orders2.`订单日期`, '%m')+2)/3) as year_season, SUM(orders2.`销售额`) FROM orders2 GROUP BY year_season
月份:SELECT DATE_FORMAT(orders2.`订单日期`, '%m') as year_season, SUM(orders2.`销售额`) FROM orders2 GROUP BY year_season

Oracle时间拆分

oracle数据库中使用的是“to_char”函数来进行时间拆分,具体的关于这个的语法可以查看这个连接:
TO_CHAR (datetime)
具体的时间的拆分的模式可以看这个连接:Format Models

以下是Oracle时间拆分的语句示例,增加了增加了group by的语法才能够选出所有的年份:

年:SELECT to_char(订单日期, 'yyyy') AS years,SUM(销售额) FROM orders2 GROUP BY years
年-季度:SELECT to_char(订单日期, 'yyyy')||'年 ', to_char(订单日期, 'q')||'季度' as year_season, SUM(销售额) FROM orders2 GROUP BY year_season
年-月:SELECT to_char(订单日期, 'yyyy-mm') as years_months ,SUM(销售额) FROM orders2 GROUP BY years_months
年-月-日:SELECT to_char(订单日期, 'yyyy-mm-dd') as years_months_days ,SUM(销售额) FROM orders2 GROUP BY years_months_days
年-月-日 时:yyyy-yy-dd hh24
年-月-日 时:分:秒 :yyyy-yy-dd hh24:mi:ss
季度:SELECT to_char(订单日期, 'q')||'季度' as year_season, SUM(销售额) FROM orders2 GROUP BY year_season

postgresql 数据库和Greenplum数据库和Oracle的拆分方法相同。

猜你喜欢

转载自blog.csdn.net/RAYFUXK/article/details/81503480
今日推荐