SQL SERVER常用的日期与时间查询总结

 更新时间:2022年04月14日 13:51:23   作者:農碼一生  
这篇文章介绍了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') -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

---当年 第一天
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-19和当前时间之间差多少年

select datediff(month,'2020/11/30',getdate()) --2001-08-19和当前时间之间差多少月

select datediff(day,'2020/11/30',getdate()) --2001-08-19和当前时间之间差多少天

5、用不同的格式显示日期/时间

select convert(char,getdate(),8)  --显示当前时:分:秒 "15:00:19"

select convert(char,getdate(),10) --显示当前月-日-年,显示形式“12-01-20”

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-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)

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

相关文章

  • sqlserver字符串拼接的实现

    sqlserver字符串拼接的实现

    本文主要介绍了sqlserver字符串拼接的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • SQL Server 2016的数据库范围内的配置详解

    SQL Server 2016的数据库范围内的配置详解

    这篇文章主要介绍了SQL Server 2016的数据库范围内的配置详解的相关资料,需要的朋友可以参考下
    2016-03-03
  • Sql Server中REPLACE函数的使用

    Sql Server中REPLACE函数的使用

    这篇文章主要介绍了Sql Server中REPLACE函数的使用的相关资料,需要的朋友可以参考下
    2016-01-01
  • sqlserver中的自定义函数的方法小结

    sqlserver中的自定义函数的方法小结

    “自定义函数”是我们平常的说法,而“用户定义的函数”是 SQL Server 中书面的说法。
    2010-06-06
  • SQLServer触发器创建、删除、修改、查看示例代码

    SQLServer触发器创建、删除、修改、查看示例代码

    触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约束。
    2010-06-06
  • 详解SQL Server数据库链接查询的方式

    详解SQL Server数据库链接查询的方式

    本文我们主要介绍了SQL Server数据库链接查询的方式,包括内连接、外连接和交叉连接等的内容,需要的朋友可以参考下
    2015-08-08
  • SQL如何实现横表与纵表相互转换

    SQL如何实现横表与纵表相互转换

    针对SQL横向表转纵向的问题,本文从实际应用出发,详细讲解了语法和操作步骤,并结合实例进行了演示和说明。文章还探讨了该方法的优缺点,提出了一些值得注意的事项,旨在帮助读者更深入地理解这一重要的数据处理技巧
    2023-04-04
  • distinct 多列问题结合group by的解决方法

    distinct 多列问题结合group by的解决方法

    distinct 多列问题 group by 解决
    2010-06-06
  • SELECT...INTO的具体用法

    SELECT...INTO的具体用法

    本文主要介绍了SELECT...INTO的具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • SQL Server如何保证可空字段中非空值唯一

    SQL Server如何保证可空字段中非空值唯一

    今天同学向我提了一个问题,我觉得蛮有意思,现记录下来大家探讨下。问题是:在一个表里面,有一个允许为空的字段,空是可以重复的,但是不为空的值需要唯一。
    2011-03-03

最新评论