mysql使用FROM_UNIXTIME將時間戳按日期group by

1.功能

將Unix時間戳轉換成指定或默認的日期字符串官宣
它具有的特點

  1. 使用整型的高效存儲和查詢時間(時間戳)
  2. 使用此函數兼容日期的時間處理(可讀性)

2. 語法

FROM_UNIXTIME(unix_timestamp[,format])
即:省略格式化字符串和指定格式化字符串,兩種方式
FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)

鐵路圖如下:
在這裏插入圖片描述

3.使用

比如按照小時彙總數據

select FROM_UNIXTIME(ReportTime, '%H'), sum(Value) from reporter_data group by FROM_UNIXTIME(ReportTime, '%H');
+---------------------------------+------------+
| FROM_UNIXTIME(ReportTime, '%H') | sum(Value) |
+---------------------------------+------------+
| 00                              |          0 |
| 01                              |          2 |
| 02                              |          4 |
| 03                              |          6 |
| 04                              |          8 |
| 05                              |         10 |
| 06                              |         12 |
| 07                              |         14 |
+---------------------------------+------------+
8 rows in set (0.00 sec)

常用的格式控制比如:’%Y-%m-%d %H:%i:%s’。然而這些並不容易記住,一種捷徑就是結合使用get_format,它可以通過顯示DATE, DATETIME, TIME和指定的標準獲得所需的日期時間格式控制字符串,比如

MySQL [coding]> select FROM_UNIXTIME(ReportTime, GET_FORMAT(DATE, 'ISO')), sum(Value) from device_data group by FROM_UNIXTIME(ReportTime, GET_FORMAT(DATE, 'ISO'));
+----------------------------------------------------+------------+
| FROM_UNIXTIME(ReportTime, GET_FORMAT(DATE, 'ISO')) | sum(Value) |
+----------------------------------------------------+------------+
| 2019-11-29                                         |         56 |
+----------------------------------------------------+------------+

更是格式控制字符串如下:

Specifier Description
%a Abbreviated weekday name (Sun…Sat)
%b Abbreviated month name (Jan…Dec)
%c Month, numeric (0…12)
%D Day of the month with English suffix (0th, 1st, 2nd, 3rd, …)
%d Day of the month, numeric (00…31)
%e Day of the month, numeric (0…31)
%f Microseconds (000000…999999)
%H Hour (00…23)
%h Hour (01…12)
%I Hour (01…12)
%i Minutes, numeric (00…59)
%j Day of year (001…366)
%k Hour (0…23)
%l Hour (1…12)
%M Month name (January…December)
%m Month, numeric (00…12)
%p AM or PM
%r Time, 12-hour (hh:mm:ss followed by AM or PM)
%S Seconds (00…59)
%s Seconds (00…59)
%T Time, 24-hour (hh:mm:ss)
%U Week (00…53), where Sunday is the first day of the week; WEEK() mode 0
%u Week (00…53), where Monday is the first day of the week; WEEK() mode 1
%V Week (01…53), where Sunday is the first day of the week; WEEK() mode 2; used with
%v Week (01…53), where Monday is the first day of the week; WEEK() mode 3; used with
%W Weekday name (Sunday…Saturday)
%w Day of the week (0=Sunday…6=Saturday)
%X Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V
%x Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v
%Y Year, numeric, four digits
%y Year, numeric (two digits)
%% A literal % character
%x x, for any “x” not listed above
發佈了101 篇原創文章 · 獲贊 45 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章