mysql日期條件如何應用_MySQL如何使用時間作為判斷條件

背景:在開發過程中,我們經常需要根據時間作為判斷條件來查詢數據,例如:當月,當日,當前小時,幾天內......

1. 當月

我們只需要使用一個mysql的month(date)函數即可實現。(注意判斷年份)

month(date);

-- 用法:month函數返回一個整數,表示指定日期值的月份。

-- 舉例

select month('2020-11-11 00:00:00')

-- 返回值是11

2. 30天內

之所以把“30天內”放在當月的后面,是因為我經常會遇到這兩個需求相互轉換的情況,“30天內”也可以稱作“一個月內”。

這種情況我們需要使用datediff(expr1,expr2)函數。

datediff(expr1,expr2)

-- 用法:參數為兩個日期,返回的是expr1-expr2的天數差

-- 舉例

select datediff('2020-11-01 08:00:00','2020-11-11 00:00:00')

-- 返回值是-10

3. 當日

當日需要使用to_days(date)函數。

to_days(date)

-- 用法:返回從0000年(公元1年)至當前日期的總天數。

-- 舉例

select to_days('0000-01-01')

-- 返回值是1

select to_days('0001-01-01')

-- 返回值是366

4. 當前小時

這種情況需要hour(date)和curdate()函數配合使用。

hour(date)

-- 用法:返回當前時間是今日的第幾個小時

-- 舉例

select hour('2020-11-11 11:11:11')

-- 返回值是11

curdate()

-- 用法:返回今日的日期,不包括時分秒, yyyy-mm-dd

-- 使用舉例

select * from table where created_at > curdate() and hour(created_at) = hour(now())

5. x天內

可以使用date_sub(date,interval expr unit)函數來實現。

date_sub(date,interval expr unit)

-- 用法:起始日期date 減去一個時間段后的日期

后面的單位unit有很多值可以選擇,如下表:

類型(unit值)

含義

expr表達式的形式

year

yy

month

mm

day

dd

hour

hh

minute

mm

second

ss

year_month

年和月

yy和mm之間用任意符號隔開

day_hour

日和小時

dd和hh之間用任意符號隔開

day_minute

日和分鐘

dd和mm之間用任意符號隔開

day_second

日和秒鐘

dd和ss之間用任意符號隔開

hour_minute

時和分

hh和mm之間用任意符號隔開

hour_second

時和秒

hh和ss之間用任意符號隔開

minute_second

分和秒

mm和ss之間用任意符號隔開

-- 舉例

-- 七天內的數據查詢

select * from table where created_at > date_sub(curdate(),interval 7 day)

6. 多少天內數據統計

我們經常還會遇到這種需求,統計7天內每天數據的量。這種情況下,我們需要考慮沒有數據推送的情況,即為0也要得到。

我的思路如下:

select

date_sub( curdate(), interval m.s day ) as orderdate

from

(

select 0 as s union all

select 1 union all

select 2 union all

select 3 union all

select 4 union all

select 5 union all

select 6

) m

以上面的sql查詢結果作為臨時表,匹配數據表統計多少天內的數據數量

-- 舉例:查詢12個月內每個月數據的數量

select count(t.created_at),res.date from

(select

date_format(date_sub( curdate(), interval m.s month ),'%y-%m') as date

from

(

select 0 as s union all

select 1 union all

select 2 union all

select 3 union all

select 4 union all

select 5 union all

select 6 union all

select 7 union all

select 8 union all

select 9 union all

select 10 union all

select 11

) m)res

left join

table t on res.date = date_format(t.created_at,'%y-%m')

group by date

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持萬仟網。

希望與廣大網友互動??

點此進行留言吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372791.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372791.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372791.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入探討JS中的數組排序函數sort()和reverse()

最近在研究Javascript發現了其中一些比較靈異的事情。有點讓人感到無語比如: alert(typeof( NaN NaN));//結果為假。 alert(typeof( NaN ! NaN));//結果為真。 嘿嘿,當然這個不是這篇文章要討論的!!開始我們的正文 首先,我們來看一下JS中sor…

帶有謂詞的Java中的功能樣式-第1部分

您一直在聽到將要席卷全球的函數式編程,而您仍然堅持使用普通Java? 不用擔心,因為您已經可以在日常Java中添加一些功能樣式。 此外,它很有趣,可以節省許多代碼行并減少錯誤。 什么是謂詞? 實際上&#xff…

寶塔添加多占點_寶塔面板啟用WordPress多站點子域名、子目錄

其實在很早以前,陌小雨就聽說了 wordpress 的多站點功能,不過因為不清楚,所以懶得折騰,這不這幾天閑著蛋疼,好好研究了下這玩意,用起來的感覺還是相當不錯的,總結起來就是如果你準備開始用 word…

centos 6.5下安裝文件上傳下載服務

centos 6.5下安裝文件上傳下載服務 由于每次在CentOS中要下載一些配置文件到物理機,和上傳一些文件到服務器,導致來回的開啟ftp軟件有點麻煩,這里我們可以使用文件上傳下載服務,來解決上傳和下載的問題。 1.登錄服務器 2.執行命令…

Jenkins 入門系列--jenkins 介紹

第一章 Jenkins是什么? Jenkins 是一個可擴展的持續集成引擎。 主要用于: l 持續、自動地構建/測試軟件項目。 l 監控一些定時執行的任務。Jenkins擁有的特性包括: l 易于安裝-只要把jenkins.war部署到servlet容器,不需要數據庫支…

在方法參數上使用final關鍵字

經過一些自己的混淆,最終博客方法的具體含義(最終聲明的方法參數)將對此博客條目進行澄清。 至少可以將方法參數上的final關鍵字視為Java編譯器的指示符,表明該參數不能重新分配給另一個引用。 Java參數處理始終是“按值調用” &a…

PHP MySQLi 增刪改查

最近幾天,我們一直在學習利用MySQLi訪問數據庫并對其中的數據進行操作。今天給大家展現一個完整的例子,我們來制作一個新聞發布系統,利用MySQLi來操作數據庫,實現對新聞的添加、修改、刪除、查詢等基本功能。(以下代碼…

20162303《程序設計與數據結構》第一周學習總結

學號 2016-2017-2 《程序設計與數據結構》第1周學習總結 教材學習內容總結 本周學習了基本的JAVA知識,雖然比較基礎,但是在實際過程中還是出現了許許多多的問題,代碼一遍遍的敲錯,又一遍遍的修改,剛開始甚至不會切換模…

Java EE與NoSQL的未來

自一段時間以來,我一直在關注NoSQL的近期發展勢頭,似乎這個流行語也引起了企業Java界的某種關注。 即EclipseLink 2.4開始支持MongoDB和Oracle NoSQL 。 將EclipseLink作為JPA參考實現,您可能想知道這對Java EE 7意味著什么。這里簡短說明&am…

【C/C++開發】C語言實現函數可變參數

函數原型: int printf(const char *format[,argument]...) 返 回 值: 成功則返回實際輸出的字符數,失敗返回-1. 函數說明: 在printf()函數中,format后面的參數個數不確定,且類型也不確定,這些參數都存放在棧內.調用…

java postgresql json_java – 將PostgreSQL JSON列映射到Hibernate值類...

See PgJDBC bug #265.PostgreSQL對數據類型轉換過于嚴格,非常嚴格.它不會隱式地將文本轉換為類似文本的值,例如xml和json.解決此問題的嚴格正確方法是編寫使用JDBC setObject方法的自定義Hibernate映射類型.這可能有點麻煩,所以你可能只想通過創建一個較弱的強制轉換來使Postgr…

面向接口編程詳解(三)——模式研究

通過前面兩篇,我想各位朋友對“面向接口編程”的思想有了一定認識,并通過第二篇的例子,獲得了一定的直觀印象。但是,第二篇中的例子旨在展示面向接口編程的實現方法,比較簡單,不能體現出面向接口編程的優勢…

錯誤學習:Java + OSGi

最近,我致力于在OSGi環境中使Apache Hive工作。 雖然沒有被證明是小菜一碟(軟件對嗎?。。為什么我不感到驚訝? ),它引導我解決了各種Java和OSGi錯誤。 在這里,我列出了其中一些讓我有些吃力的東…

iOS多Targets管理

序言: 個人不善于寫東西,就直奔主題了。 其實今天會注意到多targets這個東西,是因為在學習一個第三方庫FBMemoryProfiler的時候,用到了,所以就搜索了一些相關資料,就在這里記錄一下。 可能每個人都會遇到這…

優化的34條定律

1.Minimize HTTP Requests 減少HTTP請求 圖片、css、script、flash等等這些都會增加http請求數,減少這些元素的數量就能減少響應時間。把多個JS、CSS在可能的情況下寫進一個文件,頁面里直接寫入圖片也是不好的做法,應該寫進CSS里,…

休眠提示:排序和排序

讓我們介紹另一個休眠性能提示。 你還記得以前的休眠的模式后 ? 我們有一個與一對多協會有關的星際飛船和軍官。 Entity public class Starship {Id GeneratedValue(strategyGenerationType.SEQUENCE) private Long id;public Long getId() {return id;}protected v…

java 基本類型 線程安全_java的基本類型和i++線程安全性的深入解析

在java中,除了long和double的8個字節、64位比特的變量外,其他的基本變量都是原子性的。java存儲模型要求獲取和存儲操作都為原子性,但是對于非volatile的long和double變量,jvm允許將64位的讀或寫劃分為兩個32位的操作。如果讀和寫…

MySQL配置文件mysql.ini參數詳解

my.ini(Linux系統下是my.cnf),當mysql服務器啟動時它會讀取這個文件,設置相關的運行環境參數。 my.ini分為兩塊:Client Section和Server Section。 Client Section用來配置MySQL客戶端參數。 要查看配置參數可以用下面…

微信公眾平臺和微信開放平臺的區別

自己也剛開始做微信開發,先寫寫自己的認識: 用微信公眾平臺可以做手機端H5頁面的微信登錄,微信支付 用微信開放平臺可以做PC端網頁的微信登錄。 轉載于:https://www.cnblogs.com/mafeng/p/5610770.html

java 傳遞bean_如何將bean作為參數傳遞給JSP標記?

我ve created a custom JSP tag that is supposed to accept a list of products to render, but I我無法弄清楚如何將列表傳遞給標簽 . 產品列表作為頁面范圍的bean存在 . Web應用程序使用Struts taglib在Struts 1.2.x中編寫 .這是我的代碼的簡化版本:renderProduc…