工作中涉及到部分統計工作,恰好把之前的有些sql再熟悉回顧一下。
一.涉及到時間統計部分:
求時間差:
select timestampdiff(day, (select date(create_date) from account where id =兩者的結果是一樣的,如下:37), (select curdate())) as
'試用時間';
select
datediff ((select date(create_date) from account where id =
37), (select curdate())) as
'試用時間
';
這裡簡單說明一下:
簡單來說,其實裡面只是巢狀了兩個小的sql而已,如果這樣寫,可能你一下子就明白了:
select timestampdiff(day, "2017-02對的,其實就是這樣的,沒別的什麼。-20", "2017-07
-07");select
datediff("2017-02
-20", "2017-07
-07") as diffdate;
這裡補充幾條關於時間的sql:
-- 將當前時間拆分展示:-- 只展示日期,而不展示分鐘秒等,如:"2017-02-20"select now(),curdate(),curtime();
select date(create_date) from account where id = 37;
當然要計算某個時間到現在的時間查,有很多方法,也可以用linux shell方式去計算:
如下:
#!/bin/bash或者:#first_stamp=`date -d "
2014-12-05 19:45:44
" +%s` #計算指定日期的時間戳
today_stamp=`date +%s` #計算當天的時間戳
let day_stamp=($today_stamp -$first_stamp) #當天的時間戳減去指定的時間戳
let day=($day_stamp/86400
) #相差的時間戳除以一天的秒數就得到天數
echo $day
start=`date +%s -d "如果是日誌檔案,而不是sql檔案的話,可以用另外的方式進行:2012-11-28 15:55:37"`
end=`date +%s -d "
2017-07-07 15:55:52"`
echo $(($end-$start))
# 如果日誌檔案輸出格式是上述的話,還有個方法:關於sql中時間相關,參考: 這裡也有一些使用的小技巧。cat 日誌檔案 | awk
'/^000/
'
當然更完整的,還是參考w3school:
關於時間,在linux中可以直接安裝,並顯示日曆:
sudo apt-get install cal關於日誌,還有其他一些更詳細的命令,直接man一下,可以看到更多。
順便提乙個問題:如果要問你歷史上某一天是星期幾(過去或者未來),你怎麼做呢?比如說998年2月3日,或者2023年7月9日;你怎麼做呢?
我看到這裡有乙個有趣的帖子:作者寫的很認真,把計算方法,原理等全部寫了出來。
但如果當你在linux環境中,可以直接一條命令可以獲取到結果:
如下:cal 998-02-03,或者cal 3456-07-09
-------文末彩蛋:
你可以試試 2023年9月份看看:
mysql 記錄操作 MySQL 記錄操作
建立 以下所有操作均在user temp表中進行操作。create table user temp id int primary key auto increment,name char 5 not null,gender enum 男 女 default 男 age tinyint not nul...
mysql 記錄操作 MySQL記錄操作
一 概覽 mysql資料操作 dml 在mysql管理軟體中,可以通過sql語句中的dml語言來實現資料的操作,包括 使用insert實現資料的插入 update實現資料的更新 使用delete實現資料的刪除 使用select查詢資料以及。二 插入資料 insert 1.插入完整資料 順序插入 語法...
MySQL部分sql記錄
url jdbc mysql allowmultiqueries true為mybatis的xml檔案可以批量修改 select date format a.created time,m months,count a.id counts,sum timestampdiff second,a.crea...