最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL常見函數(shù)整理之Format將日期、時間和數(shù)字值格式化

 更新時間:2024年01月12日 11:11:04   作者:@北海怪獸  
最近項目總是寫sql查詢時間,數(shù)據(jù)庫存的時間有各種格式,下面這篇文章主要給大家介紹了關(guān)于SQL常見函數(shù)整理之Format將日期、時間和數(shù)字值格式化的相關(guān)資料,需要的朋友可以參考下

1. 用法

用于將日期、時間和數(shù)字值格式化為指定的字符串表示形式。

2. 基本語法

FORMAT(value, format)
  • value :要格式化的日期、時間或數(shù)字值。
  • format :指定要應(yīng)用的格式的字符串??梢允褂貌煌母袷酱a來定義所需的格式,格式代碼的具體取決于值的類型。

① 日期格式代碼

  • yyyy:四位數(shù)的年份。
  • MM:兩位數(shù)的月份,帶前導(dǎo)零 (注意和分鐘區(qū)分,分鐘是小寫的mm)
  • MMM:縮寫的月份名稱(例如:Jan、Feb)
  • dd:兩位數(shù)的日期,帶前導(dǎo)零
select
 format(cast('2024-01-01 10:35:14.277' as datetime), 'yyyy') as Year
,format(cast('2024-01-01 10:35:14.277' as datetime), 'MM'  ) AS Month
,format(cast('2024-01-01 10:35:14.277' as datetime), 'MMM' ) AS MonthAbbr
,format(cast('2024-01-01 10:35:14.277' as datetime), 'dd'  ) as day

查詢結(jié)果如下圖所示:

② 時間格式代碼

  • hh:12 小時制的小時,帶前導(dǎo)零(例如:01-12)
  • HH:24 小時制的小時,帶前導(dǎo)零(例如:00-23)
  • mm:分鐘,帶前導(dǎo)零(例如:00-59)
  • ss:秒,帶前導(dǎo)零(例如:00-59)
select
 format(cast('2024-01-01 19:05:09.277' as datetime), 'hh') as Hour_12h
,format(cast('2024-01-01 19:05:09.277' as datetime), 'HH'  ) AS Hour_24h
,format(cast('2024-01-01 19:05:09.277' as datetime), 'mm' ) AS Minute
,format(cast('2024-01-01 19:05:09.277' as datetime), 'ss'  ) as Second

查詢結(jié)果如下圖所示:

③ 數(shù)字格式代碼

  • 0:數(shù)字占位符,若位數(shù)不足則用零填充
  • #,##0.00:用逗號分隔千位數(shù),保留兩位小數(shù)
--假設(shè) 某ID 固定長度是6位
SELECT FORMAT(1234, '000000') AS FormattedNumber;
--查詢結(jié)果:  '001234'

select format(12345.6789,'#,##0.00')
--查詢結(jié)果:   '12,345.68'

3. 應(yīng)用示例

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd') AS FormattedDate;
-- 輸出:"2023-10-18"

SELECT FORMAT(GETDATE(), 'hh:mm:ss tt') AS FormattedTime;
-- 輸出:02:28:30 PM

SELECT FORMAT(1234567.89, '#,##0.00') AS FormattedNumber;
-- 輸出:"1,234,567.89"

注意事項:

1. 格式代碼注意區(qū)分大小寫

2. FORMAT() 函數(shù)在日期、時間和數(shù)字格式化方面非常強大,但它也可能會影響查詢性能。在處理大量數(shù)據(jù)時,建議使用其他更高效的方法來格式化數(shù)據(jù),比如在應(yīng)用層或報表工具中進行格式化。

附:日期計算

在表的實際計算中,常需要計算距離某個日期或現(xiàn)在日期往前或往后某段時間的日期。

-- 加(Mysql)
select date_add(now(),interval 1 day);
-- year:年,quarter:季,month:月,week:周,day:天,hour:小時,minuter:分鐘,second:秒,microsecond:毫秒
-- 加(sql server)
select dateadd(day,n,'2023-06-20')
-- 加(Hive)
select date_add(current_timestamp(),1) -- 加一天
select add_months('2022-07-16', n) -- Hive加n個月份
select date_format(date_sub(current_timestamp(),1),'yyyy-MM-dd') --指定前一天日期
select from_unixtime((unix_timestamp()-86400),'yyyy-MM') --指定前一天日期
-- Gbase指定前一天日期
select subdate(current_date,interval 1 day) 
-- 減
select date_sub(now(),interval 1 month);
select date_sub(date_format(current_timestamp(),'yyyy-MM-dd'),1) 
select date_sub(current_timestamp(),14) -- Hive指定前一天日期
-- 計算日期間隔
select datediff('2023-6-16','2023-6-1') -- mysql,Hive計算兩個日期之間的間隔(相差天數(shù))
select datediff('d','2023-6-1','2023-6-16 12:20:00') --sql server計算兩個日期之間間隔天數(shù)
select months_between('2023-09-22','2022-07-16') -- Hive計算兩個日期之間的間隔
select timediff('12:00:00', '11:30:00') -- 兩個時間間隔
select timestampdiff(month,date_sub(now(),interval 60 day),now()); -- 相差月
-- timestampdiff第一個參數(shù)定義返回計算的結(jié)果。year:年,quarter:季,month:月,week:周,day:天,hour:小時,minuter:分鐘,second:秒,microsecond:毫秒
-- timestampdiff減去的日期帶有時間,會認為是下一天(2023-07-20 08:00:00會按照2023-07-21計算);datediff會直接截取時間(2023-07-20 18:00:00也會按照2023-07-20計算)
select timestampdiff(day,'2023-07-13',current_date()) -- timestampdiff可以實現(xiàn)各種字符串(例如2023-07-13,20230703)日期的加減

-- 當(dāng)月的第一天
select STR_TO_DATE(CONCAT(DATE_FORMAT(now(),'%Y-%m'), '-01'), '%Y-%m-%d')
-- sql server返回當(dāng)月1號
select CONVERT(varchar(10),DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0),120)
-- 當(dāng)月最后一天
select DATE_ADD(STR_TO_DATE(CONCAT(DATE_FORMAT(DATE_ADD(now(),INTERVAL 1 MONTH),'%Y-%m'), '-01'), '%Y-%m-%d'),INTERVAL -1 DAY); 

總結(jié)

到此這篇關(guān)于SQL常見函數(shù)整理之Format將日期、時間和數(shù)字值格式化的文章就介紹到這了,更多相關(guān)SQL Format日期時間和數(shù)字值格式化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql5.7服務(wù)無法啟動的圖文解決教程

    Mysql5.7服務(wù)無法啟動的圖文解決教程

    這篇文章主要介紹了Mysql5.7服務(wù)無法啟動問題,解決辦法非常簡單,需要的的朋友參考下
    2017-02-02
  • MySql增量恢復(fù)的幾種實現(xiàn)方法

    MySql增量恢復(fù)的幾種實現(xiàn)方法

    本文主要介紹了MySql增量恢復(fù)的幾種實現(xiàn)方法,通過增量備份與恢復(fù),可以在系統(tǒng)發(fā)生故障或數(shù)據(jù)損壞時快速恢復(fù)到最新狀態(tài),提高系統(tǒng)的可靠性和可用性,感興趣的可以了解一下
    2023-08-08
  • mysql常見的錯誤提示問題處理小結(jié)

    mysql常見的錯誤提示問題處理小結(jié)

    本文總結(jié)了在使用mysql過程中經(jīng)常遇到的3種錯誤提示(error1067,error1061,error1045)的問題的處理方法,都是本人在實際應(yīng)用中處理檢驗過的,希望對大家有所幫助
    2014-08-08
  • MySQL5.7.21安裝與密碼圖文配置教程

    MySQL5.7.21安裝與密碼圖文配置教程

    這篇文章主要為大家詳細介紹了MySQL5.7.21安裝與密碼圖文配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • MySQL5.7.21解壓版安裝詳細教程圖解

    MySQL5.7.21解壓版安裝詳細教程圖解

    對于小編來說安裝系統(tǒng)軟件是常干的事情,今天小編抽空給大家整理了MySQL5.7.21解壓版安裝詳細教程圖解,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-09-09
  • 一文了解MySQL的四大子查詢

    一文了解MySQL的四大子查詢

    本文主要介紹了一文了解MySQL的四大子查詢,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Mysql中的join操作

    Mysql中的join操作

    這篇文章主要介紹了Mysql join操作的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 深入分析Mysql中l(wèi)imit的用法

    深入分析Mysql中l(wèi)imit的用法

    很久沒用mysql的limit,一時大意竟然用錯了,自認為(limit 開始,結(jié)束),其實錯了,正確的應(yīng)該是(limit 偏移量,條數(shù)),為了記住這次錯誤,轉(zhuǎn)載一篇limit用法詳解。推薦給大家,希望對大家能夠有所幫助。
    2015-03-03
  • MySQL語句匯總整理

    MySQL語句匯總整理

    這篇文章主要給大家分享的是MySQL語句匯總整理,圍繞MySQL語句的相關(guān)資料對其進行整理,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你有所幫助
    2021-12-12
  • 構(gòu)建雙vip的高可用MySQL集群

    構(gòu)建雙vip的高可用MySQL集群

    大家好,本篇文章主要講的是構(gòu)建雙vip的高可用MySQL集群,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12

最新評論

紫金县| 南和县| 屏东县| 长武县| 连平县| 静宁县| 合肥市| 高碑店市| 团风县| 平江县| 大港区| 鹿邑县| 稻城县| 错那县| 繁昌县| 固始县| 枞阳县| 文昌市| 汉川市| 新乡县| 云浮市| 浏阳市| 吴川市| 南康市| 永兴县| 永安市| 鄢陵县| 五大连池市| 方正县| 达拉特旗| 商都县| 类乌齐县| 广河县| 紫阳县| 渝中区| 西华县| 赤峰市| 雷波县| 武义县| 崇左市| 张家港市|