您当前的位置: 首页 >  sql

寒冰屋

暂无认证

  • 1浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SQL Server:专业的DateTime范围

寒冰屋 发布时间:2019-08-05 12:08:30 ,浏览量:1

目录

介绍

背景

日期

日期范围

用范围填充日期

周范围

用范围填充周数

更改周开始日

月份范围

使用范围填充月份

年份范围

用范围填充年份

日期时间函数

创建函数

使用函数

其他

DateTime Now

DateTime To Date

日,月,年详细信息

名称

数值

添加日期

加一天

推迟一秒

扣除毫秒

按日期分组

介绍

在报告列表/返回基于日期时间属性标记的数据时,通常需要。这些可能包括创建各种报告,如每日,每周,每月,每年等。本文将特别帮助那些需要生成各种日期范围的人。文章和示例侧重于DATETIME 数据类型。

背景

我们会做什么?

  • 查找一天的开始和结束日期时间
  • 用范围填充日期
  • 查找一周的开始和结束日期时间
  • 用范围填充周数
  • 查找一个月的开始和结束日期时间
  • 用范围填充月份
  • 查找一年的开始和结束日期时间
  • 用范围填充年份
  • 很少有其他DateTime相关的东西
日期 日期范围

查找日期的开始和结束日期时间。

DECLARE @dateTimeNow DATETIME ='2019-07-01 17:20:00'    /*yyyy-MM-dd HH:mm:ss*/
--DECLARE @dateTimeNow DATETIME = GETDATE();            /*now*/

SELECT 
    [StartDateTime] = DATEADD(DAY, DATEDIFF(DAY, 0, @dateTimeNow), 0),
    [EndDateTime] = DATEADD(SECOND, -1, DATEADD(DAY, DATEDIFF(DAY, 0, @dateTimeNow) + 1, 0));

用范围填充日期

生成具有每日范围的日期列表:

DECLARE @startDateTime DATETIME ='2019-09-21', _
           @endDateTime DATETIME ='2019-09-30';    /*yyyy-MM-dd*/
--SET @startDateTime = GETDATE(); _
           SET @endDateTime = @startDateTime + 10;                /*now*/

WITH Dates([Date])
AS 
(
    SELECT [Date]= @startDateTime 
         UNION ALL
         SELECT [Date] + 1 
             FROM   Dates 
             WHERE  [Date] + 1             
关注
打赏
1665926880
查看更多评论
0.0475s