SQL?SERVER常用的日期與時(shí)間查詢總結(jié)
常用的日期查詢
----YYYY --當(dāng)前年份第一天的前一天 SELECT TRUNC(SYSDATE,'yyyy') - 1 + 8 / 24 FROM DUAL---2019/12/31 上午 08:00:00 --當(dāng)前年份的第一天 SELECT TRUNC(SYSDATE,'yyyy') + 8 / 24 FROM DUAL---2020/01/01 上午 08:00:00 ----MM --當(dāng)前月的第一天 SELECT TRUNC(SYSDATE,'MM') - 1 + 8 / 24 FROM DUAL---2020/04/30 上午 08:00:00 --當(dāng)前月的第一天的前一天 SELECT TRUNC(SYSDATE,'MM') + 8 / 24 FROM DUAL---2020/05/01 上午 08:00:00 ----DD --當(dāng)前日的前一天 SELECT TRUNC(SYSDATE,'DD') - 1 + 8 / 24 FROM DUAL---2020/05/19 上午 08:00:00 SELECT TRUNC(SYSDATE) - 1 + 8 / 24 FROM DUAL---2020/5/19 上午 08:00:00 --當(dāng)前日 SELECT TRUNC(SYSDATE,'DD') + 8 / 24 FROM DUAL---2020/05/20上午 08:00:00 SELECT TRUNC(SYSDATE) + 8 / 24 FROM DUAL ---2020/5/20 上午 08:00:00 ----D --當(dāng)前星期的第一天 SELECT TRUNC(SYSDATE,'D') FROM DUAL---2020/05/17 當(dāng)前星期的第一天 {是星期日哦} ----HH --當(dāng)前的時(shí)間,精確到小時(shí) SELECT TRUNC(SYSDATE,'HH') FROM DUAL---2020/05/20 下午 03:00:00 --當(dāng)前的時(shí)間的前一小時(shí) SELECT TRUNC(SYSDATE,'HH')- 1/24 FROM DUAL---2020/05/20下午 02:00:00 ----MI --當(dāng)前時(shí)間,精確到分 SELECT TRUNC(SYSDATE,'MI') FROM DUAL---2020/05/20 下午 03:40:00 --當(dāng)前時(shí)間前一分鐘 SELECT TRUNC(SYSDATE,'MI') -1/24/60 FROM DUAL---2020/05/20 下午 03:39:00 ---上周 SELECT TO_CHAR(TRUNC(SYSDATE, 'IW') - 7, 'yyyymmdd') FROM DUAL SELECT TO_CHAR(TRUNC(SYSDATE, 'IW') - 1, 'yyyymmdd') FROM DUAL ---本周 SELECT TO_CHAR(TRUNC(SYSDATE, 'IW') , 'yyyymmdd') FROM DUAL SELECT TO_CHAR(TRUNC(SYSDATE, 'IW') + 6, 'yyyymmdd') FROM DUAL ---上一月的第一天和最后一天 select trunc(add_months(sysdate, -1), 'mm') first_day, last_day(add_months(sysdate, -1)) last_day from dual ---本月的最后一天 SELECT TO_CHAR(last_day(add_months(sysdate, 0)), 'yyyymmdd') FROM DUAL ---當(dāng)年 第一天 SELECT TO_CHAR(trunc(sysdate, 'yyyy'), 'yyyymmdd') FROM DUAL ---上年最后一天 SELECT TO_CHAR(trunc(sysdate,'iyyy'), 'yyyymmdd') FROM DUAL ---當(dāng)月第一天 SELECT TO_CHAR(trunc(sysdate,'mm'), 'yyyymmdd') FROM DUAL ---當(dāng)月數(shù)值 SELECT TO_CHAR(sysdate,'mm') FROM DUAL ---當(dāng)周數(shù)值 SELECT TO_CHAR(sysdate,'ww') FROM DUAL
時(shí)間查詢的方法
1、獲取當(dāng)前時(shí)間
select getdate()
2、截取需要的值
select datepart(year,getdate()) select datepart(month,getdate()) select datepart(day,getdate()) select datepart(hour,getdate()) select datepart(minute,getdate()) select datepart(second,getdate()) select datepart(week,getdate())
3、在日期中添加或減去指定的時(shí)間間隔
select dateadd(year,3,getdate()) --獲取當(dāng)前時(shí)間,往后推遲三年 select dateadd(month,3,getdate()) --獲取當(dāng)前時(shí)間,往后推遲三個(gè)月 select dateadd(day,3,getdate()) --獲取當(dāng)前時(shí)間,往后推遲三天 select dateadd(hour,3,getdate()) --獲取當(dāng)前時(shí)間,往后推遲三小時(shí) select dateadd(minute,3,getdate()) --獲取當(dāng)前時(shí)間,往后推遲三分鐘 select dateadd(second,3,getdate()) --獲取當(dāng)前時(shí)間,往后推遲三秒鐘
4、返回兩個(gè)日期之間的時(shí)間
select datediff(year,'2020/11/30',getdate()) --2001-08-19和當(dāng)前時(shí)間之間差多少年 select datediff(month,'2020/11/30',getdate()) --2001-08-19和當(dāng)前時(shí)間之間差多少月 select datediff(day,'2020/11/30',getdate()) --2001-08-19和當(dāng)前時(shí)間之間差多少天
5、用不同的格式顯示日期/時(shí)間
select convert(char,getdate(),8) --顯示當(dāng)前時(shí):分:秒 "15:00:19" select convert(char,getdate(),10) --顯示當(dāng)前月-日-年,顯示形式“12-01-20” select convert(char,getdate(),11) --顯示當(dāng)前年-月-日,顯示形式“20/12/01” select convert(char,getdate(),14) --顯示當(dāng)前時(shí)-分-秒-毫秒,顯示形式“14:58:06:340" -------- select convert(varchar(100), GETDATE(), 111) -- 2020/12/01 select convert(varchar(100), GETDATE(), 112) -- 20201201 select convert(varchar(100), GETDATE(), 120) --2020-12-01 15:09:51 select convert(varchar(100), GETDATE(), 121) --2020-12-01 15:10:03.717 select convert(varchar(100), GETDATE(), 111)+' ' + convert(char,getdate(),8) --select convert(char,getdate(),8)
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SQLServer日期函數(shù)總結(jié)案例詳解
- SQLServer 日期函數(shù)大全(小結(jié))
- SQL SERVER中常用日期函數(shù)的具體使用
- SqlServer 查詢時(shí)日期格式化語句
- SQL Server 日期相關(guān)資料詳細(xì)介紹
- sqlserver獲取當(dāng)前日期的最大時(shí)間值
- SQL Server 日期和時(shí)間的內(nèi)部存儲(chǔ)過程
- SqlServer 按時(shí)間段查詢問題
- SQL Server 獲取服務(wù)器時(shí)間的sql語句
- SQL Server時(shí)間戳功能與用法詳解
- sqlserver獲取各種形式的時(shí)間
- sql server查詢時(shí)間技巧分享
- SqlServer中的日期與時(shí)間函數(shù)
- Sqlserver 常用日期時(shí)間函數(shù)
相關(guān)文章
SQL Server 2016的數(shù)據(jù)庫范圍內(nèi)的配置詳解
這篇文章主要介紹了SQL Server 2016的數(shù)據(jù)庫范圍內(nèi)的配置詳解的相關(guān)資料,需要的朋友可以參考下2016-03-03sqlserver中的自定義函數(shù)的方法小結(jié)
“自定義函數(shù)”是我們平常的說法,而“用戶定義的函數(shù)”是 SQL Server 中書面的說法。2010-06-06SQLServer觸發(fā)器創(chuàng)建、刪除、修改、查看示例代碼
觸發(fā)器是一種特殊的存儲(chǔ)過程﹐它不能被顯式地調(diào)用﹐而是在往表中插入記錄﹑更新記錄或者刪除記錄時(shí)被自動(dòng)地激活。所以觸發(fā)器可以用來實(shí)現(xiàn)對(duì)表實(shí)施復(fù)雜的完整性約束。2010-06-06詳解SQL Server數(shù)據(jù)庫鏈接查詢的方式
本文我們主要介紹了SQL Server數(shù)據(jù)庫鏈接查詢的方式,包括內(nèi)連接、外連接和交叉連接等的內(nèi)容,需要的朋友可以參考下2015-08-08SQL如何實(shí)現(xiàn)橫表與縱表相互轉(zhuǎn)換
針對(duì)SQL橫向表轉(zhuǎn)縱向的問題,本文從實(shí)際應(yīng)用出發(fā),詳細(xì)講解了語法和操作步驟,并結(jié)合實(shí)例進(jìn)行了演示和說明。文章還探討了該方法的優(yōu)缺點(diǎn),提出了一些值得注意的事項(xiàng),旨在幫助讀者更深入地理解這一重要的數(shù)據(jù)處理技巧2023-04-04distinct 多列問題結(jié)合group by的解決方法
distinct 多列問題 group by 解決2010-06-06