mysql時間相關操作

2021-08-29 15:46:13 字數 2782 閱讀 8952

mysql 昨天 一周前 一月前 一年前的資料 這裡主要用到了date_sub,

參考如下

複製****如下:

select * from yh_content

where inputtime>date_sub(curdate(), interval 1 day)

where inputtime>date_sub(curdate(), interval 1 week)

where inputtime>date_sub(curdate(), interval 1 month)

where inputtime>date_sub(curdate(), interval 1 year)

注意:如果資料庫中時間以unix時間戳的形式存放的話,在時間對比上需要更改為統一格式:

需要用unix_timestamp()轉化為unix時間戳形式對比:

複製****如下:

where inputtime>unix_timestamp(date_sub(curdate(), interval 1 day))

where inputtime>unix_timestamp(date_sub(curdate(), interval 1 week))

where inputtime>unix_timestamp(date_sub(curdate(), interval 1 month))

where inputtime>unix_timestamp(date_sub(curdate(), interval 1 year))

詳細請檢視mysql時間函式:date_sub、date_add、unix_timestamp等函式的用法

mysql中獲取一天、一周、一月時間資料的各種sql語句寫法

今天抽時間整理了一篇mysql中與天、周、月有關的時間資料的sql語句的各種寫法,部分是收集資料,全部手工整理,自己學習的同時,分享給大家,並首先預設建立乙個表、插入2條資料,便於部分資料的測試,其中部分名詞或函式進行了解釋說明。直入主題!

建立表:

複製****如下:

create table if not exists t

id int,

addtime datetime default '0000-00-00 00:00:00′

新增兩條初始資料:

insert t values(1, '2012-07-12 21:00:00′);

insert t values(2, '2012-07-22 21:00:00′);

一、當天或當日插入的資料:

1、傳統對比判斷:select * from `t` where date_format(addtime,'%y-%m-%d') = date_format(now(),'%y-%m-%d')");

2、第一點的簡寫:select * from `t` where addtime >= date_format(now(),'%y-%m-%d');

4、利用時間戳判斷:select * from `t` where addtime between (unix_timestamp(now()-86440)) and now();

注:返回當天時間的mysql函式有curdate()、current_date()、current_date、now()幾種;其中now()獲取的日期格式為0000-00-00 00:00:00的時間;curdate()、current_date()、current_date是獲取日期格式為0000-00-00的時間,所以返回的時間無時分秒;

1、今天是當月的第幾天:select dayofmonth( now( ) );

日期運算函式,句型:date_add(date,interval expr type)和date_sub(date,interval expr type)

interval的使用者說明:

1、當函式使用時,即interval(),為比較函式,如:interval(10,1,3,5,7); 結果為4;

原理:10為被比較數,後面1,3,5,7為比較數,將後面四個依次與10比較,看後面數字組有多少個少於10,則返回其個數。前提是後面數字組為從小到大排列,否則返回結果0。

弄清楚了上面幾個重要的日期運算函式,下面再來乙個混合的日期運算。

1、獲取今天是一周第幾天或星期幾:select weekday(now());返回的是數字:0為周一,6為週日

2、獲取本週的第一天日期:select date_sub(now(),interval weekday(now()) day);或select date_add(now(),interval -weekday(now()) day);或 select curdate( ) – weekday( curdate( ) );

3、再寫乙個上週的第一天至現在的資料:(以表t為資料表)

select * from `t` where addtime >= date_format(date_sub(date_sub(now(), interval weekday(now()) day), interval 1 week), 『%y-%m-%d');是不是有些感覺了!

注:若你是以時間戳儲存的時間字段,那麼請用from_unixtime()函式轉換為時間格式,如:from_unixtime($timestamp)

四、mysql中將日期轉為時間戳

前三點的方法,講的都是將日期轉為相應時間常量,並沒有提到時間戳與時間的轉換,這裡把它寫出來,

1、時間戳轉日期,方法是select from_unixtime(1336542121);

2、日期轉時間戳,方法是:select unix_timestamp('2013-04-08′);

MySQL時間相關操作

1 date format引數格式 格式 描述 a 縮寫星期名 b 縮寫月名 c 月,數值 d 帶有英文本首的月中的天 d 月的天,數值 00 31 e 月的天,數值 0 31 f 微妙 h 小時 00 23 h 小時 01 12 i 小時 01 12 i 分鐘,數值 00 59 j 年的天 001...

mysql相關操作 mysql 相關操作

1 登入 mysql u root p 2 檢視當前有的資料庫 show databases 3 建立資料庫 create database 資料庫名 4 操作 使用 資料庫 use 資料庫名 5 檢視有哪些表 show tables 6 建立表 create table 表名 7 刪除表 drop...

mysql 時間操作 mysql操作時間

select curdate 獲取當前日期 select last day curdate 獲取當月最後一天。select date add curdate interval day curdate 1 day 獲取本月第一天 select date add curdate day curdate ...