承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

SQL基础:SQL SERVER经常使用的日期与时间查询总结

管理员 2023-09-04 08:12:55 互联网圈 0 ℃ 0 评论 11470字 收藏

SQL基础:SQL SERVER经常使用的日期与时间查询总结

经常使用的日期查询

—-YYYY
–当前年份第一天的前一天
SELECT TRUNC(SYSDATE,’yyyy’) – 1 + 8 / 24 FROM DUAL—2019/12/31 上午 08:00:00
–当前年份的第一天
SELECT TRUNC(SYSDATE,’yyyy’) + 8 / 24 FROM DUAL—2020/01/01 上午 08:00:00

—-MM
–当前月的第一天
SELECT TRUNC(SYSDATE,’MM’) – 1 + 8 / 24 FROM DUAL—2020/04/30 上午 08:00:00
–当前月的第一天的前一天
SELECT TRUNC(SYSDATE,’MM’) + 8 / 24 FROM DUAL—2020/05/01 上午 08:00:00

—-DD
–当前日的前一天
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
–当前日
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
–当前星期的第一天
SELECT TRUNC(SYSDATE,’D’) FROM DUAL—2020/05/17 当前星期的第一天 {是星期日哦}

—-HH
–当前的时间,精确到小时
SELECT TRUNC(SYSDATE,’HH’) FROM DUAL—2020/05/20 下午 03:00:00
–当前的时间的前一小时
SELECT TRUNC(SYSDATE,’HH’)- 1/24 FROM DUAL—2020/05/20下午 02:00:00

—-MI
–当前时间,精确到分
SELECT TRUNC(SYSDATE,’MI’) FROM DUAL—2020/05/20 下午 03:40:00
–当前时间前一分钟
SELECT TRUNC(SYSDATE,’MI’) ⑴/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, ⑴), ‘mm’) first_day,
last_day(add_months(sysdate, ⑴)) last_day
from dual
—本月的最后一天
SELECT TO_CHAR(last_day(add_months(sysdate, 0)), ‘yyyymmdd’) FROM DUAL

—当年 第一天
SELECT TO_CHAR(trunc(sysdate, ‘yyyy’), ‘yyyymmdd’) FROM DUAL
—上年最后一天
SELECT TO_CHAR(trunc(sysdate,’iyyy’), ‘yyyymmdd’) FROM DUAL

—当月第一天
SELECT TO_CHAR(trunc(sysdate,’mm’), ‘yyyymmdd’) FROM DUAL
—当月数值
SELECT TO_CHAR(sysdate,’mm’) FROM DUAL

—当周数值
SELECT TO_CHAR(sysdate,’ww’) FROM DUAL

时间查询的方法

1、获得当前时间 

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、在日期中添加或减去指定的时间间隔

select dateadd(year,3,getdate()) –获得当前时间,往后推延三年

select dateadd(month,3,getdate()) –获得当前时间,往后推延三个月

select dateadd(day,3,getdate()) –获得当前时间,往后推延三天

select dateadd(hour,3,getdate()) –获得当前时间,往后推延三小时

select dateadd(minute,3,getdate()) –获得当前时间,往后推延三分钟

select dateadd(second,3,getdate()) –获得当前时间,往后推延三秒钟

4、返回两个日期之间的时间

select datediff(year,’2020/11/30′,getdate()) –2001-08⑴9和当前时间之间差多少年

select datediff(month,’2020/11/30′,getdate()) –2001-08⑴9和当前时间之间差多少月

select datediff(day,’2020/11/30′,getdate()) –2001-08⑴9和当前时间之间差多少天

5、用区别的格式显示日期/时间

select convert(char,getdate(),8) –显示当前时:分:秒 “15:00:19″

select convert(char,getdate(),10) –显示当前月-日-年,显示情势“12-01⑵0”

select convert(char,getdate(),11) –显示当前年-月-日,显示情势“20/12/01”

select convert(char,getdate(),14) –显示当前时-分-秒-毫秒,显示情势“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⑴2-01 15:09:51
select convert(varchar(100), GETDATE(), 121) –2020⑴2-01 15:10:03.717

select convert(varchar(100), GETDATE(), 111)+’ ‘ + convert(char,getdate(),8)

–select convert(char,getdate(),8)

经常使用的日期查询

—-YYYY
–当前年份第一天的前一天
SELECT TRUNC(SYSDATE,’yyyy’) – 1 + 8 / 24 FROM DUAL—2019/12/31 上午 08:00:00
–当前年份的第一天
SELECT TRUNC(SYSDATE,’yyyy’) + 8 / 24 FROM DUAL—2020/01/01 上午 08:00:00

—-MM
–当前月的第一天
SELECT TRUNC(SYSDATE,’MM’) – 1 + 8 / 24 FROM DUAL—2020/04/30 上午 08:00:00
–当前月的第一天的前一天
SELECT TRUNC(SYSDATE,’MM’) + 8 / 24 FROM DUAL—2020/05/01 上午 08:00:00

—-DD
–当前日的前一天
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
–当前日
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
–当前星期的第一天
SELECT TRUNC(SYSDATE,’D’) FROM DUAL—2020/05/17 当前星期的第一天 {是星期日哦}

—-HH
–当前的时间,精确到小时
SELECT TRUNC(SYSDATE,’HH’) FROM DUAL—2020/05/20 下午 03:00:00
–当前的时间的前一小时
SELECT TRUNC(SYSDATE,’HH’)- 1/24 FROM DUAL—2020/05/20下午 02:00:00

—-MI
–当前时间,精确到分
SELECT TRUNC(SYSDATE,’MI’) FROM DUAL—2020/05/20 下午 03:40:00
–当前时间前一分钟
SELECT TRUNC(SYSDATE,’MI’) ⑴/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, ⑴), ‘mm’) first_day,
last_day(add_months(sysdate, ⑴)) last_day
from dual
—本月的最后一天
SELECT TO_CHAR(last_day(add_months(sysdate, 0)), ‘yyyymmdd’) FROM DUAL

—当年 第一天
SELECT TO_CHAR(trunc(sysdate, ‘yyyy’), ‘yyyymmdd’) FROM DUAL
—上年最后一天
SELECT TO_CHAR(trunc(sysdate,’iyyy’), ‘yyyymmdd’) FROM DUAL

—当月第一天
SELECT TO_CHAR(trunc(sysdate,’mm’), ‘yyyymmdd’) FROM DUAL
—当月数值
SELECT TO_CHAR(sysdate,’mm’) FROM DUAL

—当周数值
SELECT TO_CHAR(sysdate,’ww’) FROM DUAL

时间查询的方法

1、获得当前时间 

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、在日期中添加或减去指定的时间间隔

select dateadd(year,3,getdate()) –获得当前时间,往后推延三年

select dateadd(month,3,getdate()) –获得当前时间,往后推延三个月

select dateadd(day,3,getdate()) –获得当前时间,往后推延三天

select dateadd(hour,3,getdate()) –获得当前时间,往后推延三小时

select dateadd(minute,3,getdate()) –获得当前时间,往后推延三分钟

select dateadd(second,3,getdate()) –获得当前时间,往后推延三秒钟

4、返回两个日期之间的时间

select datediff(year,’2020/11/30′,getdate()) –2001-08⑴9和当前时间之间差多少年

select datediff(month,’2020/11/30′,getdate()) –2001-08⑴9和当前时间之间差多少月

select datediff(day,’2020/11/30′,getdate()) –2001-08⑴9和当前时间之间差多少天

5、用区别的格式显示日期/时间

select convert(char,getdate(),8) –显示当前时:分:秒 “15:00:19″

select convert(char,getdate(),10) –显示当前月-日-年,显示情势“12-01⑵0”

select convert(char,getdate(),11) –显示当前年-月-日,显示情势“20/12/01”

select convert(char,getdate(),14) –显示当前时-分-秒-毫秒,显示情势“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⑴2-01 15:09:51
select convert(varchar(100), GETDATE(), 121) –2020⑴2-01 15:10:03.717

select convert(varchar(100), GETDATE(), 111)+’ ‘ + convert(char,getdate(),8)

–select convert(char,getdate(),8)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

文章来源:丸子建站

文章标题:SQL基础:SQL SERVER经常使用的日期与时间查询总结

https://www.wanzijz.com/view/76402.html

X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信