DB 部分MySQL操作記錄

2021-09-20 14:10:03 字數 2248 閱讀 8682

工作中涉及到部分統計工作,恰好把之前的有些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:

-- 將當前時間拆分展示:

select now(),curdate(),curtime();

-- 只展示日期,而不展示分鐘秒等,如:"2017-02-20"

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 "

2012-11-28 15:55:37"`

end=`date +%s -d "

2017-07-07 15:55:52"`

echo $(($end-$start))

如果是日誌檔案,而不是sql檔案的話,可以用另外的方式進行:

# 如果日誌檔案輸出格式是上述的話,還有個方法:

cat 日誌檔案 | awk

'/^000/

'

關於sql中時間相關,參考: 這裡也有一些使用的小技巧。

當然更完整的,還是參考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...