欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql查詢今天、昨天、近7天、近30天、本月、上一月的SQL語句

 更新時(shí)間:2014年06月27日 09:41:26   投稿:junjie  
這篇文章主要介紹了mysql查詢今天、昨天、近7天、近30天、本月、上一月的SQL語句,一般在一些統(tǒng)計(jì)報(bào)表中比較常用這個(gè)時(shí)間段,需要的朋友可以參考下

mysql查詢今天,昨天,近7天,近30天,本月,上一月數(shù)據(jù)的方法分析總結(jié):
話說有一文章表article,存儲文章的添加文章的時(shí)間是add_time字段,該字段為int(5)類型的,現(xiàn)需要查詢今天添加的文章總數(shù)并且按照時(shí)間從大到小排序,則查詢語句如下:

復(fù)制代碼 代碼如下:

select * from `article` where date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d');

或者:

復(fù)制代碼 代碼如下:

select * from `article` where to_days(date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d')) = to_days(now());

假設(shè)以上表的add_time字段的存儲類型是DATETIME類型或者TIMESTAMP類型,則查詢語句也可按如下寫法:
查詢今天的信息記錄:
復(fù)制代碼 代碼如下:

select * from `article` where to_days(`add_time`) = to_days(now());

查詢昨天的信息記錄:
復(fù)制代碼 代碼如下:

select * from `article` where to_days(now()) – to_days(`add_time`) <= 1;

查詢近7天的信息記錄:
復(fù)制代碼 代碼如下:

select * from `article` where date_sub(curdate(), INTERVAL 7 DAY) <= date(`add_time`);

查詢近30天的信息記錄:
復(fù)制代碼 代碼如下:

select * from `article` where date_sub(curdate(), INTERVAL 30 DAY) <= date(`add_time`);

查詢本月的信息記錄:
復(fù)制代碼 代碼如下:

select * from `article` where date_format(`add_time`, ‘%Y%m') = date_format(curdate() , ‘%Y%m');

查詢上一月的信息記錄:
復(fù)制代碼 代碼如下:

select * from `article` where period_diff(date_format(now() , ‘%Y%m') , date_format(`add_time`, ‘%Y%m')) =1;

對上面的SQL語句中的幾個(gè)函數(shù)做一下分析:
(1)to_days
就像它的名字一樣,它是將具體的某一個(gè)日期或時(shí)間字符串轉(zhuǎn)換到某一天所對應(yīng)的unix時(shí)間戳,如:

復(fù)制代碼 代碼如下:

mysql> select  to_days('2010-11-22 14:39:51');     
 +--------------------------------+                                                       
| to_days('2010-11-22 14:39:51') |
+--------------------------------+
|                         734463 |
+--------------------------------+

mysql> select  to_days('2010-11-23 14:39:51');
+--------------------------------+
| to_days('2010-11-23 14:39:51') |
+--------------------------------+
|                         734464 |
+--------------------------------+

可以看出22日與23日的差別就是,轉(zhuǎn)換之后的數(shù)增加了1,這個(gè)粒度的查詢是比較粗糙的,有時(shí)可能不能滿足我們的查詢要求,那么就需要使用細(xì)粒度的查詢方法str_to_date函數(shù)了,下面將分析這個(gè)函數(shù)的用法。

提醒:
(1)to_days() 不用于陽歷出現(xiàn)(1582)前的值,原因是當(dāng)日歷改變時(shí),遺失的日期不會被考慮在內(nèi)。因此對于1582 年之前的日期(或許在其它地區(qū)為下一年 ), 該函數(shù)的結(jié)果實(shí)不可靠的。
 
(2)MySQL"日期和時(shí)間類型"中的規(guī)則是將日期中的二位數(shù)年份值轉(zhuǎn)化為四位。因此對于'1997-10-07'和'97-10-07'將被視為同樣的日期:

復(fù)制代碼 代碼如下:

mysql> select to_days('1997-10-07'), to_days('97-10-07');
    -> 729669, 729669

(2)str_to_date
這個(gè)函數(shù)可以把字符串時(shí)間完全的翻譯過來,如:

復(fù)制代碼 代碼如下:

mysql> select str_to_date("2010-11-23 14:39:51",'%Y-%m-%d %H:%i:%s');
 
+--------------------------------------------------------+
| str_to_date("2010-11-23 14:39:51",'%Y-%m-%d %H:%i:%s') |
+--------------------------------------------------------+
| 2010-11-23 14:39:51                                    |
+--------------------------------------------------------+


具體案例操作如下:

復(fù)制代碼 代碼如下:

select str_to_date(article.`add_time`,'%Y-%m-%d %H:%i:%s')
from article
where str_to_date(article.`add_time`,'%Y-%m-%d %H:%i:%s')>='2012-06-28 08:00:00' and str_to_date(article.`add_time`,'%Y-%m-%d %H:%i:%s')<='2012-06-28 09:59:59';

相關(guān)文章

  • Mysql Error Code : 1436 Thread stack overrun

    Mysql Error Code : 1436 Thread stack overrun

    I meet with the error while calling stored procedures from the MySql in my Mac system server. It similar as the description below
    2011-07-07
  • mysql中的一些稍微復(fù)雜用法實(shí)例代碼

    mysql中的一些稍微復(fù)雜用法實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于mysql中的一些稍微復(fù)雜用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • MySQL批量插入唯一索引沖突的幾種避免辦法

    MySQL批量插入唯一索引沖突的幾種避免辦法

    我們在進(jìn)行大批量的數(shù)據(jù)插入時(shí),遇到唯一索引沖突是經(jīng)常的事,本文主要介紹了MySQL批量插入唯一索引沖突的幾種避免辦法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • 詳解MySQL主從復(fù)制及讀寫分離

    詳解MySQL主從復(fù)制及讀寫分離

    這篇文章主要介紹了詳解MySQL主從復(fù)制及讀寫分離,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)mysql的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • mysql如何按照中文排序解決方案

    mysql如何按照中文排序解決方案

    本文將詳細(xì)介紹mysql如何按照中文排序解決方案,需要的朋友可以參考下
    2012-11-11
  • MySQL之存儲過程按月創(chuàng)建表的方法步驟

    MySQL之存儲過程按月創(chuàng)建表的方法步驟

    這篇文章主要介紹了MySQL之存儲過程按月創(chuàng)建表的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • MySQL學(xué)習(xí)第五天 MySQL數(shù)據(jù)庫基本操作

    MySQL學(xué)習(xí)第五天 MySQL數(shù)據(jù)庫基本操作

    MySQL學(xué)習(xí)第五天我們將針對MySQL數(shù)據(jù)庫進(jìn)行基本操作,創(chuàng)建、修改、刪除數(shù)據(jù)庫等一系列操作進(jìn)行學(xué)習(xí),感興趣的小伙伴們可以參考一下
    2016-05-05
  • MySQL中的SQL標(biāo)準(zhǔn)語句詳解

    MySQL中的SQL標(biāo)準(zhǔn)語句詳解

    SQL(Structured?Query?Language)是“結(jié)構(gòu)化查詢語言”,它是對關(guān)系型數(shù)據(jù)庫的操作語言。雖然SQL可以用在所有關(guān)系型數(shù)據(jù)庫中,但很多數(shù)據(jù)庫還都有標(biāo)準(zhǔn)之后的一些語法,我們可以稱之為方言
    2022-09-09
  • 教你如何在MySQL命令行中使用SQL語句的規(guī)則

    教你如何在MySQL命令行中使用SQL語句的規(guī)則

    這篇文章主要介紹了教你如何在MySQL命令行中使用SQL語句的規(guī)則 ,需要的朋友可以參考下
    2014-08-08
  • Mysql 建庫建表技巧分享

    Mysql 建庫建表技巧分享

    本文中說到的“建”,并非單純的建一個(gè)庫,或是建一張表,而是你建好的庫和表在項(xiàng)目的運(yùn)營中,是否能應(yīng)付各種事件,下面我說說幾個(gè)我在項(xiàng)目中遇到的問題以及處理的方法,算是一個(gè)小小的心得,給大家分享下。
    2011-07-07

最新評論