国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Java】【SQL】DATE_FORMAT函數(shù)詳解

這篇具有很好參考價值的文章主要介紹了【Java】【SQL】DATE_FORMAT函數(shù)詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在實際應(yīng)用開發(fā)中,使用sql語句也屬于開發(fā)者的一部分,這次來說說DATE_FORMAT函數(shù)。

引言:實際上在使用Java開發(fā)過程中,有很多業(yè)務(wù)場景下,都有時間類型的參數(shù)參與。前后端進(jìn)行交互的時候,針對時間類型的格式都會做一個業(yè)務(wù)上的統(tǒng)一,方便開發(fā)且增加效率。關(guān)于后端的邏輯有兩個層面可以進(jìn)行優(yōu)化,一個是底層sql方面,一個是業(yè)務(wù)層方面,這兩者之間的處理都可以影響整個業(yè)務(wù)方法的響應(yīng)時間。本次分享在sql層面使用DATE_FORMAT 函數(shù) 對時間類型數(shù)據(jù)的處理

1、簡單介紹:DATE_FORMAT 是 SQL 中的一個函數(shù),用于將日期或時間格式化為指定的格式,以下是sql形式的格式
DATE_FORMAT(date, format)

其中:
date 是要格式化的日期或時間。
format 是你希望得到的輸出格式。文章來源地址http://www.zghlxwxcb.cn/news/detail-840710.html

舉例
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');

常見的格式化選項有:

%Y 年份,四位數(shù)
%y 年份,兩位數(shù)
%m 月份,兩位數(shù)
%d 日期,兩位數(shù)
%H 小時,24小時制,兩位數(shù)
%h 小時,12小時制,兩位數(shù)
%i 分鐘,兩位數(shù)
%s 秒,兩位數(shù)
%p AM/PM
例子中,把時間轉(zhuǎn)化為 年月日格式,和電腦右下角的日期是相同的,那么針對Java中的傳參怎么應(yīng)用呢,以下:
@Data
public class AITimeDatePlay {

	@DateTimeFormat(
			pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date testTime;
}

代碼中僅有一個字段,該字段上貼有2個注解,插個題外話,大概解釋一下:

@DateTimeFormat :當(dāng)前端丟給后端時間參數(shù)的時候,這個注解就將參數(shù)中的時間類型的樣式轉(zhuǎn)為我們設(shè)置的在該注解中的pattern一樣。
@JsonFormat:當(dāng)后端丟給前端的結(jié)果是json模式時(一般都是json),該注解會把后端結(jié)果中的時間類型參數(shù)轉(zhuǎn)為我們在該注解中設(shè)置的pattern 一樣。注意:需要添加時區(qū)(timezone)

重點是無論怎么丟參數(shù),丟的都是Date類型,現(xiàn)在 使用sql 中 DATE_FORMAT 函數(shù)來參與業(yè)務(wù)

List<EmployeeInfo> queryInfomationByTime(AITimeDatePlay dto);
最終查詢sql
<select id="queryInfomationByTime" resultType="com.bonade.hrm.foundation.model.EmployeeInfo">
        select *
        from employee_info ei
        where date_format(ei.initiation_time,'%Y-%m-%d') = DATE_FORMAT(#{testTime},'%Y-%m-%d')
    </select>
也可以當(dāng)作字段返回,如下:
select date_format(ei.initiation_time,'%Y-%m-%d') as bigTime
        from employee_info ei
        where date_format(ei.initiation_time,'%Y-%m-%d') = DATE_FORMAT(#{testTime},'%Y-%m-%d')
也可以按照需求,只精確到年月
select date_format(ei.initiation_time,'%Y-%m') as bigTime
        from employee_info ei
        where date_format(ei.initiation_time,'%Y-%m') = DATE_FORMAT(#{testTime},'%Y-%m')

也可以輸入首、尾時間,取數(shù)據(jù)庫中某個時間單位是否在輸入的時間段之中

select date_format(ei.initiation_time,'%Y-%m') as bigTime
        from employee_info ei
        where (
            ((DATE_FORMAT( ei.initiation_time, '%Y-%m' )) BETWEEN  #{startTime} AND #{endTime})
            OR (( DATE_FORMAT( ei.leave_time, '%Y-%m' )) BETWEEN  #{startTime} AND #{endTime})
            )

startTime 為傳入的開始時間參數(shù),endTime 為傳入的結(jié)束時間參數(shù),這二者之間的時間段可以作為一個篩選條件,若該二者時間格式也需要調(diào)整,那么如下:

select date_format(ei.initiation_time,'%Y-%m') as bigTime
        from employee_info ei
        where (
            ((DATE_FORMAT( ei.initiation_time, '%Y-%m' )) BETWEEN  DATE_FORMAT(#{startTime},'%Y-%m') AND DATE_FORMAT(#{endTime},'%Y-%m'))
            OR (( DATE_FORMAT( ei.leave_time, '%Y-%m' )) BETWEEN  DATE_FORMAT(#{startTime},'%Y-%m') AND DATE_FORMAT(#{endTime},'%Y-%m'))
            )
以上則是分享的DATE_FORMAT函數(shù)的簡單使用。

到了這里,關(guān)于【Java】【SQL】DATE_FORMAT函數(shù)詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • java.sql.Date & java.util.Date

    sql包中Date是util包子類 我們可以看到,java.util.Date類輸出的時間包含年月日及時分秒,而java.sql.Date輸出的時間僅有年月日。這是因為java.sql包下的Date僅表示日期,只有年月日,沒有時分秒,因此會丟失時間。 21:59:40.745 [main] INFO com.geekmice.springbootselfexercise.NoDaoTest - [Sun Aug 06 2

    2024年02月13日
    瀏覽(21)
  • sql中COALESCE函數(shù)詳解

    在SQL中, COALESCE 函數(shù)是一個非常有用的函數(shù),用于從其參數(shù)列表中返回第一個非 NULL 值。如果所有給定的參數(shù)都是 NULL ,那么 COALESCE 函數(shù)將返回 NULL 。這個函數(shù)可以接受多個參數(shù),使其在處理可能出現(xiàn)的 NULL 值時非常靈活和強大。 語法 expression1, expression2, ..., expressionN :是

    2024年04月27日
    瀏覽(14)
  • 【SQL】COUNT()函數(shù) 用法詳解

    COUNT函數(shù)用法: COUNT ( [ALL | DISTINCT] column | expression | *) ALL指示統(tǒng)計所有值,而DISTINCT強制函數(shù)僅對不同的值進(jìn)行操作。 默認(rèn)情況下,使用ALL選項。 條件表達(dá)式 COUNT()函數(shù)中條件表達(dá)式加 OR null。例如, SELECT COUNT(number 200 OR null) FROM vf; COUNT()函數(shù)中條件表達(dá)式使用

    2024年04月25日
    瀏覽(78)
  • SQL中CONVERT()函數(shù)用法詳解

    SQL中CONVERT函數(shù)格式: CONVERT(data_type,expression[,style]) 參數(shù)說明: expression 是任何有效的 Microsoft? SQL Server? 表達(dá)式。。 data_type 目標(biāo)系統(tǒng)所提供的數(shù)據(jù)類型,包括 bigint 和 sql_variant。不能使用用戶定義的數(shù)據(jù)類型。 length nchar、nvarchar、char、varchar、binary 或 varbinary 數(shù)據(jù)類型的可選參

    2024年02月05日
    瀏覽(21)
  • 解決報錯 java.lang.IllegalArgumentException: Cannot format given Object as a Date

    報錯原因:我們在SimpleDateFormat.format轉(zhuǎn)化時間格式的時候,傳入的值無法轉(zhuǎn)換成date而報的錯 我的代碼大概就是下面這種 發(fā)現(xiàn)SimpleDateFormat.format方法并不適用于LocalDate類型,不然就會報此錯誤; 這個錯誤的解決方法都是一樣,先把時間轉(zhuǎn)換成date類型,再去調(diào)用此方法進(jìn)行格式

    2024年02月04日
    瀏覽(26)
  • 「SQL面試題庫」 No_122 Fix Product Name Format

    「SQL面試題庫」是由 不是西紅柿 發(fā)起,全員免費參與的SQL學(xué)習(xí)活動。我每天發(fā)布1道SQL面試真題,從簡單到困難,涵蓋所有SQL知識點,我敢保證只要做完這100道題,不僅能輕松搞定面試,代碼能力和工作效率也會有明顯提升。 1.1 活動流程 整理題目 :西紅柿每天無論刮風(fēng)下雨

    2024年02月13日
    瀏覽(14)
  • SQL Server用戶定義的函數(shù)(UDF)使用詳解

    SQL Server用戶定義的函數(shù)(UDF)使用詳解

    與編程語言中的函數(shù)一樣,SQL Server 用戶定義函數(shù)是接受參數(shù)、執(zhí)行操作(如復(fù)雜計算)并將該操作的結(jié)果作為值返回的例程。返回值可以是單個標(biāo)量值,也可以是結(jié)果集。 模塊化編程??梢詣?chuàng)建一次函數(shù),將其存儲在數(shù)據(jù)庫中,并在程序中調(diào)用它任意次數(shù)??梢元毩⒂诔绦?/p>

    2023年04月12日
    瀏覽(24)
  • MySQL-SQL存儲函數(shù)以及觸發(fā)器詳解

    MySQL-SQL存儲函數(shù)以及觸發(fā)器詳解

    ?? 作者:小劉在C站 ?? 個人主頁: ?小劉主頁? ?? 努力不一定有回報,但一定會有收獲加油!一起努力,共赴美好人生! ?? 學(xué)習(xí)兩年總結(jié)出的運維經(jīng)驗,以及思科模擬器全套網(wǎng)絡(luò)實驗教程。專欄: 云計算技術(shù) ??小劉私信可以隨便問,只要會絕不吝嗇,感謝CSD

    2024年02月11日
    瀏覽(95)
  • SQL窗口分析函數(shù)使用詳解系列三之偏移量類窗口函數(shù)

    本文以HiveSQL語法進(jìn)行代碼演示。 對于其他數(shù)據(jù)庫來說同樣也適用,比如SparkSQL,F(xiàn)linkSQL以及Mysql8,Oracle,SqlServer等傳統(tǒng)的關(guān)系型數(shù)據(jù)庫。 已更新第一類聚合函數(shù)類,點擊這里閱讀 ①SQL窗口函數(shù)系列一之聚合函數(shù)類 ②SQL窗口函數(shù)系列二之分組排序窗口函數(shù) 本節(jié)介紹Hive窗口分

    2024年04月26日
    瀏覽(22)
  • SQL之CASE WHEN函數(shù)語句多條件下使用詳解

    針對CASE WHEN函數(shù)語句,實現(xiàn)簡單CASE函數(shù)和CASE搜索函數(shù)兩種格式。 同時配合 SUM以及COUNT方法的使用 1、CASE 的兩種格式: ?簡單CASE函數(shù)和CASE搜索函數(shù) 兩種格式示例: 狀態(tài): state 訂單號: orderId 這兩種格式式,可以實現(xiàn)相同的功能。但是簡單CASE函數(shù)和CASE搜索函數(shù)相比,功能

    2024年02月11日
    瀏覽(37)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包